text:
import warnings

from tencentcloud.common.abstract_model import AbstractModel

class AgeDetectTask(AbstractModel):
    """年龄语音识别子任务

    """

    def __init__(self):
        r"""
        :param DataId: 数据唯一ID
        :type DataId: str
        :param Url: 数据文件的url,为 urlencode 编码,音频文件格式支持的类型:.wav、.m4a、.amr、.mp3、.aac、.wma、.ogg
        :type Url: str
        """
        self.DataId = None
        self.Url = None

    def _deserialize(self, params):
        self.DataId = params.get("DataId")
        self.Url = params.get("Url")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class AgeDetectTaskResult(AbstractModel):
    """年龄语音任务结果

    """

    def __init__(self):
        r"""
        :param DataId: 数据唯一ID
        :type DataId: str
        :param Url: 数据文件的url
        :type Url: str
        :param Status: 任务状态,0: 已创建,1:运行中,2:正常结束,3:异常结束,4:运行超时
        :type Status: int
        :param Age: 任务结果:0: 成年,1:未成年,100:未知
        :type Age: int
        """
        self.DataId = None
        self.Url = None
        self.Status = None
        self.Age = None

    def _deserialize(self, params):
        self.DataId = params.get("DataId")
        self.Url = params.get("Url")
        self.Status = params.get("Status")
        self.Age = params.get("Age")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class AppStatisticsItem(AbstractModel):
    """应用用量统计数据

    """

    def __init__(self):
        r"""
        :param RealtimeSpeechStatisticsItem: 实时语音统计数据
注意:此字段可能返回 null,表示取不到有效值。
        :type RealtimeSpeechStatisticsItem: :class:`tencentcloud.gme.v20180711.models.RealTimeSpeechStatisticsItem`
        :param VoiceMessageStatisticsItem: 语音消息统计数据
注意:此字段可能返回 null,表示取不到有效值。
        :type VoiceMessageStatisticsItem: :class:`tencentcloud.gme.v20180711.models.VoiceMessageStatisticsItem`
        :param VoiceFilterStatisticsItem: 语音过滤统计数据
注意:此字段可能返回 null,表示取不到有效值。
        :type VoiceFilterStatisticsItem: :class:`tencentcloud.gme.v20180711.models.VoiceFilterStatisticsItem`
        :param Date: 统计时间
        :type Date: str
        :param AudioTextStatisticsItem: 录音转文本用量统计数据
注意:此字段可能返回 null,表示取不到有效值。
        :type AudioTextStatisticsItem: :class:`tencentcloud.gme.v20180711.models.AudioTextStatisticsItem`
        :param StreamTextStatisticsItem: 流式转文本用量数据
注意:此字段可能返回 null,表示取不到有效值。
        :type StreamTextStatisticsItem: :class:`tencentcloud.gme.v20180711.models.StreamTextStatisticsItem`
        :param OverseaTextStatisticsItem: 海外转文本用量数据
注意:此字段可能返回 null,表示取不到有效值。
        :type OverseaTextStatisticsItem: :class:`tencentcloud.gme.v20180711.models.OverseaTextStatisticsItem`
        :param RealtimeTextStatisticsItem: 实时语音转文本用量数据
注意:此字段可能返回 null,表示取不到有效值。
        :type RealtimeTextStatisticsItem: :class:`tencentcloud.gme.v20180711.models.RealtimeTextStatisticsItem`
        """
        self.RealtimeSpeechStatisticsItem = None
        self.VoiceMessageStatisticsItem = None
        self.VoiceFilterStatisticsItem = None
        self.Date = None
        self.AudioTextStatisticsItem = None
        self.StreamTextStatisticsItem = None
        self.OverseaTextStatisticsItem = None
        self.RealtimeTextStatisticsItem = None

    def _deserialize(self, params):
        if params.get("RealtimeSpeechStatisticsItem") is not None:
            self.RealtimeSpeechStatisticsItem = RealTimeSpeechStatisticsItem()
            self.RealtimeSpeechStatisticsItem._deserialize(params.get("RealtimeSpeechStatisticsItem"))
        if params.get("VoiceMessageStatisticsItem") is not None:
            self.VoiceMessageStatisticsItem = VoiceMessageStatisticsItem()
            self.VoiceMessageStatisticsItem._deserialize(params.get("VoiceMessageStatisticsItem"))
        if params.get("VoiceFilterStatisticsItem") is not None:
            self.VoiceFilterStatisticsItem = VoiceFilterStatisticsItem()
            self.VoiceFilterStatisticsItem._deserialize(params.get("VoiceFilterStatisticsItem"))
        self.Date = params.get("Date")
        if params.get("AudioTextStatisticsItem") is not None:
            self.AudioTextStatisticsItem = AudioTextStatisticsItem()
            self.AudioTextStatisticsItem._deserialize(params.get("AudioTextStatisticsItem"))
        if params.get("StreamTextStatisticsItem") is not None:
            self.StreamTextStatisticsItem = StreamTextStatisticsItem()
            self.StreamTextStatisticsItem._deserialize(params.get("StreamTextStatisticsItem"))
        if params.get("OverseaTextStatisticsItem") is not None:
            self.OverseaTextStatisticsItem = OverseaTextStatisticsItem()
            self.OverseaTextStatisticsItem._deserialize(params.get("OverseaTextStatisticsItem"))
        if params.get("RealtimeTextStatisticsItem") is not None:
            self.RealtimeTextStatisticsItem = RealtimeTextStatisticsItem()
            self.RealtimeTextStatisticsItem._deserialize(params.get("RealtimeTextStatisticsItem"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ApplicationDataStatistics(AbstractModel):
    """应用统计数据

    """

    def __init__(self):
        r"""
        :param BizId: 应用ID
        :type BizId: int
        :param DauDataNum: Dau统计项数目
        :type DauDataNum: int
        :param DauDataMainland: 大陆地区Dau统计数据,单位人
        :type DauDataMainland: list of StatisticsItem
        :param DauDataOversea: 海外地区Dau统计数据,单位人
        :type DauDataOversea: list of StatisticsItem
        :param DauDataSum: 大陆和海外地区Dau统计数据汇总,单位人
        :type DauDataSum: list of StatisticsItem
        :param DurationDataNum: 实时语音时长统计项数目
        :type DurationDataNum: int
        :param DurationDataMainland: 大陆地区实时语音时长统计数据,单位分钟
        :type DurationDataMainland: list of StatisticsItem
        :param DurationDataOversea: 海外地区实时语音时长统计数据,单位分钟
        :type DurationDataOversea: list of StatisticsItem
        :param DurationDataSum: 大陆和海外地区实时语音时长统计数据汇总,单位分钟
        :type DurationDataSum: list of StatisticsItem
        :param PcuDataNum: Pcu统计项数目
        :type PcuDataNum: int
        :param PcuDataMainland: 大陆地区Pcu统计数据,单位人
        :type PcuDataMainland: list of StatisticsItem
        :param PcuDataOversea: 海外地区Pcu统计数据,单位人
        :type PcuDataOversea: list of StatisticsItem
        :param PcuDataSum: 大陆和海外地区Pcu统计数据汇总,单位人
        :type PcuDataSum: list of StatisticsItem
        """
        self.BizId = None
        self.DauDataNum = None
        self.DauDataMainland = None
        self.DauDataOversea = None
        self.DauDataSum = None
        self.DurationDataNum = None
        self.DurationDataMainland = None
        self.DurationDataOversea = None
        self.DurationDataSum = None
        self.PcuDataNum = None
        self.PcuDataMainland = None
        self.PcuDataOversea = None
        self.PcuDataSum = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.DauDataNum = params.get("DauDataNum")
        if params.get("DauDataMainland") is not None:
            self.DauDataMainland = []
            for item in params.get("DauDataMainland"):
                obj = StatisticsItem()
                obj._deserialize(item)
                self.DauDataMainland.append(obj)
        if params.get("DauDataOversea") is not None:
            self.DauDataOversea = []
            for item in params.get("DauDataOversea"):
                obj = StatisticsItem()
                obj._deserialize(item)
                self.DauDataOversea.append(obj)
        if params.get("DauDataSum") is not None:
            self.DauDataSum = []
            for item in params.get("DauDataSum"):
                obj = StatisticsItem()
                obj._deserialize(item)
                self.DauDataSum.append(obj)
        self.DurationDataNum = params.get("DurationDataNum")
        if params.get("DurationDataMainland") is not None:
            self.DurationDataMainland = []
            for item in params.get("DurationDataMainland"):
                obj = StatisticsItem()
                obj._deserialize(item)
                self.DurationDataMainland.append(obj)
        if params.get("DurationDataOversea") is not None:
            self.DurationDataOversea = []
            for item in params.get("DurationDataOversea"):
                obj = StatisticsItem()
                obj._deserialize(item)
                self.DurationDataOversea.append(obj)
        if params.get("DurationDataSum") is not None:
            self.DurationDataSum = []
            for item in params.get("DurationDataSum"):
                obj = StatisticsItem()
                obj._deserialize(item)
                self.DurationDataSum.append(obj)
        self.PcuDataNum = params.get("PcuDataNum")
        if params.get("PcuDataMainland") is not None:
            self.PcuDataMainland = []
            for item in params.get("PcuDataMainland"):
                obj = StatisticsItem()
                obj._deserialize(item)
                self.PcuDataMainland.append(obj)
        if params.get("PcuDataOversea") is not None:
            self.PcuDataOversea = []
            for item in params.get("PcuDataOversea"):
                obj = StatisticsItem()
                obj._deserialize(item)
                self.PcuDataOversea.append(obj)
        if params.get("PcuDataSum") is not None:
            self.PcuDataSum = []
            for item in params.get("PcuDataSum"):
                obj = StatisticsItem()
                obj._deserialize(item)
                self.PcuDataSum.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class AudioTextStatisticsItem(AbstractModel):
    """录音转文本用量统计数据

    """

    def __init__(self):
        r"""
        :param Data: 统计值,单位:秒
注意:此字段可能返回 null,表示取不到有效值。
        :type Data: float
        """
        self.Data = None

    def _deserialize(self, params):
        self.Data = params.get("Data")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class CreateAgeDetectTaskRequest(AbstractModel):
    """CreateAgeDetectTask请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用id
        :type BizId: int
        :param Tasks: 语音检测子任务列表,列表最多支持100个检测子任务。结构体中包含:

DataId:数据的唯一ID

Url:数据文件的url,为 urlencode 编码,流式则为拉流地址

        :type Tasks: list of AgeDetectTask
        :param Callback: 任务结束时gme后台会自动触发回调
        :type Callback: str
        """
        self.BizId = None
        self.Tasks = None
        self.Callback = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        if params.get("Tasks") is not None:
            self.Tasks = []
            for item in params.get("Tasks"):
                obj = AgeDetectTask()
                obj._deserialize(item)
                self.Tasks.append(obj)
        self.Callback = params.get("Callback")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class CreateAgeDetectTaskResponse(AbstractModel):
    """CreateAgeDetectTask返回参数结构体

    """

    def __init__(self):
        r"""
        :param TaskId: 本次任务提交后唯一id,用于获取任务运行结果
        :type TaskId: str
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.TaskId = None
        self.RequestId = None

    def _deserialize(self, params):
        self.TaskId = params.get("TaskId")
        self.RequestId = params.get("RequestId")

class CreateAppRequest(AbstractModel):
    """CreateApp请求参数结构体

    """

    def __init__(self):
        r"""
        :param AppName: 应用名称
        :type AppName: str
        :param ProjectId: 腾讯云项目ID,默认为0,表示默认项目
        :type ProjectId: int
        :param EngineList: 需要支持的引擎列表,默认全选。
        :type EngineList: list of str
        :param RegionList: 服务区域列表,默认全选。
        :type RegionList: list of str
        :param RealtimeSpeechConf: 实时语音服务配置数据
        :type RealtimeSpeechConf: :class:`tencentcloud.gme.v20180711.models.RealtimeSpeechConf`
        :param VoiceMessageConf: 语音消息及转文本服务配置数据
        :type VoiceMessageConf: :class:`tencentcloud.gme.v20180711.models.VoiceMessageConf`
        :param VoiceFilterConf: 语音分析服务配置数据
        :type VoiceFilterConf: :class:`tencentcloud.gme.v20180711.models.VoiceFilterConf`
        :param Tags: 需要添加的标签列表
        :type Tags: list of Tag
        """
        self.AppName = None
        self.ProjectId = None
        self.EngineList = None
        self.RegionList = None
        self.RealtimeSpeechConf = None
        self.VoiceMessageConf = None
        self.VoiceFilterConf = None
        self.Tags = None

    def _deserialize(self, params):
        self.AppName = params.get("AppName")
        self.ProjectId = params.get("ProjectId")
        self.EngineList = params.get("EngineList")
        self.RegionList = params.get("RegionList")
        if params.get("RealtimeSpeechConf") is not None:
            self.RealtimeSpeechConf = RealtimeSpeechConf()
            self.RealtimeSpeechConf._deserialize(params.get("RealtimeSpeechConf"))
        if params.get("VoiceMessageConf") is not None:
            self.VoiceMessageConf = VoiceMessageConf()
            self.VoiceMessageConf._deserialize(params.get("VoiceMessageConf"))
        if params.get("VoiceFilterConf") is not None:
            self.VoiceFilterConf = VoiceFilterConf()
            self.VoiceFilterConf._deserialize(params.get("VoiceFilterConf"))
        if params.get("Tags") is not None:
            self.Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self.Tags.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class CreateAppResp(AbstractModel):
    """CreateApp的输出参数

    """

    def __init__(self):
        r"""
        :param BizId: 应用ID,由后台自动生成。
        :type BizId: int
        :param AppName: 应用名称,透传输入参数的AppName
        :type AppName: str
        :param ProjectId: 项目ID,透传输入的ProjectId
        :type ProjectId: int
        :param SecretKey: 应用密钥,GME SDK初始化时使用
        :type SecretKey: str
        :param CreateTime: 服务创建时间戳
        :type CreateTime: int
        :param RealtimeSpeechConf: 实时语音服务配置数据
        :type RealtimeSpeechConf: :class:`tencentcloud.gme.v20180711.models.RealtimeSpeechConf`
        :param VoiceMessageConf: 语音消息及转文本服务配置数据
        :type VoiceMessageConf: :class:`tencentcloud.gme.v20180711.models.VoiceMessageConf`
        :param VoiceFilterConf: 语音分析服务配置数据
        :type VoiceFilterConf: :class:`tencentcloud.gme.v20180711.models.VoiceFilterConf`
        """
        self.BizId = None
        self.AppName = None
        self.ProjectId = None
        self.SecretKey = None
        self.CreateTime = None
        self.RealtimeSpeechConf = None
        self.VoiceMessageConf = None
        self.VoiceFilterConf = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.AppName = params.get("AppName")
        self.ProjectId = params.get("ProjectId")
        self.SecretKey = params.get("SecretKey")
        self.CreateTime = params.get("CreateTime")
        if params.get("RealtimeSpeechConf") is not None:
            self.RealtimeSpeechConf = RealtimeSpeechConf()
            self.RealtimeSpeechConf._deserialize(params.get("RealtimeSpeechConf"))
        if params.get("VoiceMessageConf") is not None:
            self.VoiceMessageConf = VoiceMessageConf()
            self.VoiceMessageConf._deserialize(params.get("VoiceMessageConf"))
        if params.get("VoiceFilterConf") is not None:
            self.VoiceFilterConf = VoiceFilterConf()
            self.VoiceFilterConf._deserialize(params.get("VoiceFilterConf"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class CreateAppResponse(AbstractModel):
    """CreateApp返回参数结构体

    """

    def __init__(self):
        r"""
        :param Data: 创建应用返回数据
        :type Data: :class:`tencentcloud.gme.v20180711.models.CreateAppResp`
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.Data = None
        self.RequestId = None

    def _deserialize(self, params):
        if params.get("Data") is not None:
            self.Data = CreateAppResp()
            self.Data._deserialize(params.get("Data"))
        self.RequestId = params.get("RequestId")

class CreateCustomizationRequest(AbstractModel):
    """CreateCustomization请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用 ID,登录控制台创建应用得到的AppID
        :type BizId: int
        :param TextUrl: 文本文件的下载地址,服务会从该地址下载文件,目前仅支持腾讯云cos
        :type TextUrl: str
        """
        self.BizId = None
        self.TextUrl = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.TextUrl = params.get("TextUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class CreateCustomizationResponse(AbstractModel):
    """CreateCustomization返回参数结构体

    """

    def __init__(self):
        r"""
        :param ModelId: 模型ID
        :type ModelId: str
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.ModelId = None
        self.RequestId = None

    def _deserialize(self, params):
        self.ModelId = params.get("ModelId")
        self.RequestId = params.get("RequestId")

class CreateScanUserRequest(AbstractModel):
    """CreateScanUser请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用ID,登录控制台 - 服务管理创建应用得到的AppID
        :type BizId: int
        :param UserId: 需要新增送检的用户号。示例:1234
        :type UserId: int
        """
        self.BizId = None
        self.UserId = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.UserId = params.get("UserId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class CreateScanUserResponse(AbstractModel):
    """CreateScanUser返回参数结构体

    """

    def __init__(self):
        r"""
        :param ErrorCode: 返回结果码
        :type ErrorCode: int
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.ErrorCode = None
        self.RequestId = None

    def _deserialize(self, params):
        self.ErrorCode = params.get("ErrorCode")
        self.RequestId = params.get("RequestId")

class CustomizationConfigs(AbstractModel):
    """语音消息转文本自学习模型配置

    """

    def __init__(self):
        r"""
        :param BizId: 应用 ID,登录控制台创建应用得到的AppID
        :type BizId: int
        :param ModelId: 模型ID
        :type ModelId: str
        :param ModelState: 模型状态,-1下线状态,1上线状态, 0训练中, -2训练失败
        :type ModelState: int
        """
        self.BizId = None
        self.ModelId = None
        self.ModelState = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.ModelId = params.get("ModelId")
        self.ModelState = params.get("ModelState")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DeleteCustomizationRequest(AbstractModel):
    """DeleteCustomization请求参数结构体

    """

    def __init__(self):
        r"""
        :param ModelId: 要删除的模型ID
        :type ModelId: str
        :param BizId: 应用 ID,登录控制台创建应用得到的AppID
        :type BizId: int
        """
        self.ModelId = None
        self.BizId = None

    def _deserialize(self, params):
        self.ModelId = params.get("ModelId")
        self.BizId = params.get("BizId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DeleteCustomizationResponse(AbstractModel):
    """DeleteCustomization返回参数结构体

    """

    def __init__(self):
        r"""
        :param ErrorCode: 返回值。0为成功,非0为失败。
        :type ErrorCode: int
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.ErrorCode = None
        self.RequestId = None

    def _deserialize(self, params):
        self.ErrorCode = params.get("ErrorCode")
        self.RequestId = params.get("RequestId")

class DeleteResult(AbstractModel):
    """剔除房间操作结果

    """

    def __init__(self):
        r"""
        :param Code: 错误码,0-剔除成功 其他-剔除失败
        :type Code: int
        :param ErrorMsg: 错误描述
        :type ErrorMsg: str
        """
        self.Code = None
        self.ErrorMsg = None

    def _deserialize(self, params):
        self.Code = params.get("Code")
        self.ErrorMsg = params.get("ErrorMsg")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DeleteRoomMemberRequest(AbstractModel):
    """DeleteRoomMember请求参数结构体

    """

    def __init__(self):
        r"""
        :param RoomId: 要操作的房间id
        :type RoomId: str
        :param Uids: 要剔除的用户列表
        :type Uids: list of str
        :param DeleteType: 剔除类型 1-删除房间 2-剔除用户
        :type DeleteType: int
        :param BizId: 应用id
        :type BizId: int
        """
        self.RoomId = None
        self.Uids = None
        self.DeleteType = None
        self.BizId = None

    def _deserialize(self, params):
        self.RoomId = params.get("RoomId")
        self.Uids = params.get("Uids")
        self.DeleteType = params.get("DeleteType")
        self.BizId = params.get("BizId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DeleteRoomMemberResponse(AbstractModel):
    """DeleteRoomMember返回参数结构体

    """

    def __init__(self):
        r"""
        :param DeleteResult: 剔除房间或成员的操作结果
        :type DeleteResult: :class:`tencentcloud.gme.v20180711.models.DeleteResult`
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.DeleteResult = None
        self.RequestId = None

    def _deserialize(self, params):
        if params.get("DeleteResult") is not None:
            self.DeleteResult = DeleteResult()
            self.DeleteResult._deserialize(params.get("DeleteResult"))
        self.RequestId = params.get("RequestId")

class DeleteScanUserRequest(AbstractModel):
    """DeleteScanUser请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用ID,登录控制台 - 服务管理创建应用得到的AppID
        :type BizId: int
        :param UserId: 需要删除送检的用户号。示例:1234
        :type UserId: int
        """
        self.BizId = None
        self.UserId = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.UserId = params.get("UserId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DeleteScanUserResponse(AbstractModel):
    """DeleteScanUser返回参数结构体

    """

    def __init__(self):
        r"""
        :param ErrorCode: 返回结果码
        :type ErrorCode: int
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.ErrorCode = None
        self.RequestId = None

    def _deserialize(self, params):
        self.ErrorCode = params.get("ErrorCode")
        self.RequestId = params.get("RequestId")

class DescribeAgeDetectTaskRequest(AbstractModel):
    """DescribeAgeDetectTask请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用id
        :type BizId: int
        :param TaskId: 创建年龄语音识别任务时返回的taskid
        :type TaskId: str
        """
        self.BizId = None
        self.TaskId = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.TaskId = params.get("TaskId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DescribeAgeDetectTaskResponse(AbstractModel):
    """DescribeAgeDetectTask返回参数结构体

    """

    def __init__(self):
        r"""
        :param TaskId: 任务ID
        :type TaskId: str
        :param Results: 语音检测返回。Results 字段是 JSON 数组,每一个元素包含:
DataId: 请求中对应的 DataId。
Url :该请求中对应的 Url。
Status :子任务状态,0:已创建,1:运行中,2:已完成,3:任务异常,4:任务超时。
Age :子任务完成后的结果,0:成年人,1:未成年人,100:未知结果。
        :type Results: list of AgeDetectTaskResult
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.TaskId = None
        self.Results = None
        self.RequestId = None

    def _deserialize(self, params):
        self.TaskId = params.get("TaskId")
        if params.get("Results") is not None:
            self.Results = []
            for item in params.get("Results"):
                obj = AgeDetectTaskResult()
                obj._deserialize(item)
                self.Results.append(obj)
        self.RequestId = params.get("RequestId")

class DescribeAppStatisticsRequest(AbstractModel):
    """DescribeAppStatistics请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: GME应用ID
        :type BizId: int
        :param StartDate: 数据开始时间,东八区时间,格式: 年-月-日,如: 2018-07-13
        :type StartDate: str
        :param EndDate: 数据结束时间,东八区时间,格式: 年-月-日,如: 2018-07-13
        :type EndDate: str
        :param Services: 要查询的服务列表,取值:RealTimeSpeech/VoiceMessage/VoiceFilter/SpeechToText
        :type Services: list of str
        """
        self.BizId = None
        self.StartDate = None
        self.EndDate = None
        self.Services = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.StartDate = params.get("StartDate")
        self.EndDate = params.get("EndDate")
        self.Services = params.get("Services")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DescribeAppStatisticsResp(AbstractModel):
    """获取应用用量统计数据输出参数

    """

    def __init__(self):
        r"""
        :param AppStatistics: 应用用量统计数据
        :type AppStatistics: list of AppStatisticsItem
        """
        self.AppStatistics = None

    def _deserialize(self, params):
        if params.get("AppStatistics") is not None:
            self.AppStatistics = []
            for item in params.get("AppStatistics"):
                obj = AppStatisticsItem()
                obj._deserialize(item)
                self.AppStatistics.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DescribeAppStatisticsResponse(AbstractModel):
    """DescribeAppStatistics返回参数结构体

    """

    def __init__(self):
        r"""
        :param Data: 应用用量统计数据
        :type Data: :class:`tencentcloud.gme.v20180711.models.DescribeAppStatisticsResp`
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.Data = None
        self.RequestId = None

    def _deserialize(self, params):
        if params.get("Data") is not None:
            self.Data = DescribeAppStatisticsResp()
            self.Data._deserialize(params.get("Data"))
        self.RequestId = params.get("RequestId")

class DescribeApplicationDataRequest(AbstractModel):
    """DescribeApplicationData请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用ID
        :type BizId: int
        :param StartDate: 数据开始时间,格式为 年-月-日,如: 2018-07-13
        :type StartDate: str
        :param EndDate: 数据结束时间,格式为 年-月-日,如: 2018-07-13
        :type EndDate: str
        """
        self.BizId = None
        self.StartDate = None
        self.EndDate = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.StartDate = params.get("StartDate")
        self.EndDate = params.get("EndDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DescribeApplicationDataResponse(AbstractModel):
    """DescribeApplicationData返回参数结构体

    """

    def __init__(self):
        r"""
        :param Data: 应用统计数据
        :type Data: :class:`tencentcloud.gme.v20180711.models.ApplicationDataStatistics`
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.Data = None
        self.RequestId = None

    def _deserialize(self, params):
        if params.get("Data") is not None:
            self.Data = ApplicationDataStatistics()
            self.Data._deserialize(params.get("Data"))
        self.RequestId = params.get("RequestId")

class DescribeRealtimeScanConfigRequest(AbstractModel):
    """DescribeRealtimeScanConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用ID
        :type BizId: int
        """
        self.BizId = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DescribeRealtimeScanConfigResponse(AbstractModel):
    """DescribeRealtimeScanConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param ErrorCode: 返回结果码,0正常,非0失败
        :type ErrorCode: int
        :param BizId: 应用ID
        :type BizId: int
        :param AuditType: 送检类型,0: 全量送审,1: 自定义送审
        :type AuditType: int
        :param UserIdRegex: 用户号正则表达式
        :type UserIdRegex: list of str
        :param RoomIdRegex: 房间号正则表达式
        :type RoomIdRegex: list of str
        :param UserIdString: 用户号字符串,逗号分隔,示例:"0001,0002,0003"
        :type UserIdString: str
        :param RoomIdString: 房间号字符串,逗号分隔,示例:"0001,0002,0003"
        :type RoomIdString: str
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.ErrorCode = None
        self.BizId = None
        self.AuditType = None
        self.UserIdRegex = None
        self.RoomIdRegex = None
        self.UserIdString = None
        self.RoomIdString = None
        self.RequestId = None

    def _deserialize(self, params):
        self.ErrorCode = params.get("ErrorCode")
        self.BizId = params.get("BizId")
        self.AuditType = params.get("AuditType")
        self.UserIdRegex = params.get("UserIdRegex")
        self.RoomIdRegex = params.get("RoomIdRegex")
        self.UserIdString = params.get("UserIdString")
        self.RoomIdString = params.get("RoomIdString")
        self.RequestId = params.get("RequestId")

class DescribeRoomInfoRequest(AbstractModel):
    """DescribeRoomInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param SdkAppId: 应用ID,登录[控制台 - 服务管理](https://console.cloud.tencent.com/gamegme)创建应用得到的AppID
        :type SdkAppId: int
        :param RoomIds: 房间号列表,最大不能超过10个(RoomIds、StrRoomIds必须填一个)
        :type RoomIds: list of int non-negative
        :param StrRoomIds: 字符串类型房间号列表,最大不能超过10个(RoomIds、StrRoomIds必须填一个)
        :type StrRoomIds: list of str
        """
        self.SdkAppId = None
        self.RoomIds = None
        self.StrRoomIds = None

    def _deserialize(self, params):
        self.SdkAppId = params.get("SdkAppId")
        self.RoomIds = params.get("RoomIds")
        self.StrRoomIds = params.get("StrRoomIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DescribeRoomInfoResponse(AbstractModel):
    """DescribeRoomInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param Result: 操作结果, 0成功, 非0失败
注意:此字段可能返回 null,表示取不到有效值。
        :type Result: int
        :param RoomUsers: 房间用户信息
注意:此字段可能返回 null,表示取不到有效值。
        :type RoomUsers: list of RoomUser
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.Result = None
        self.RoomUsers = None
        self.RequestId = None

    def _deserialize(self, params):
        self.Result = params.get("Result")
        if params.get("RoomUsers") is not None:
            self.RoomUsers = []
            for item in params.get("RoomUsers"):
                obj = RoomUser()
                obj._deserialize(item)
                self.RoomUsers.append(obj)
        self.RequestId = params.get("RequestId")

class DescribeScanResult(AbstractModel):
    """语音检测结果返回

    """

    def __init__(self):
        r"""
        :param Code: 业务返回码
        :type Code: int
        :param DataId: 数据唯一 ID
        :type DataId: str
        :param ScanFinishTime: 检测完成的时间戳
        :type ScanFinishTime: int
        :param HitFlag: 是否违规
        :type HitFlag: bool
        :param Live: 是否为流
        :type Live: bool
        :param Msg: 业务返回描述
注意:此字段可能返回 null,表示取不到有效值。
        :type Msg: str
        :param ScanPiece: 检测结果,Code 为 0 时返回
注意:此字段可能返回 null,表示取不到有效值。
        :type ScanPiece: list of ScanPiece
        :param ScanStartTime: 提交检测的时间戳
        :type ScanStartTime: int
        :param Scenes: 语音检测场景,对应请求时的 Scene
        :type Scenes: list of str
        :param TaskId: 语音检测任务 ID,由后台分配
        :type TaskId: str
        :param Url: 文件或接流地址
        :type Url: str
        :param Status: 检测任务执行结果状态,分别为:

Start: 任务开始

Success: 成功结束

Error: 异常

        :type Status: str
        :param BizId: 提交检测的应用 ID
        :type BizId: int
        """
        self.Code = None
        self.DataId = None
        self.ScanFinishTime = None
        self.HitFlag = None
        self.Live = None
        self.Msg = None
        self.ScanPiece = None
        self.ScanStartTime = None
        self.Scenes = None
        self.TaskId = None
        self.Url = None
        self.Status = None
        self.BizId = None

    def _deserialize(self, params):
        self.Code = params.get("Code")
        self.DataId = params.get("DataId")
        self.ScanFinishTime = params.get("ScanFinishTime")
        self.HitFlag = params.get("HitFlag")
        self.Live = params.get("Live")
        self.Msg = params.get("Msg")
        if params.get("ScanPiece") is not None:
            self.ScanPiece = []
            for item in params.get("ScanPiece"):
                obj = ScanPiece()
                obj._deserialize(item)
                self.ScanPiece.append(obj)
        self.ScanStartTime = params.get("ScanStartTime")
        self.Scenes = params.get("Scenes")
        self.TaskId = params.get("TaskId")
        self.Url = params.get("Url")
        self.Status = params.get("Status")
        self.BizId = params.get("BizId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DescribeScanResultListRequest(AbstractModel):
    """DescribeScanResultList请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用 ID,登录[控制台](https://console.cloud.tencent.com/gamegme)创建应用得到的AppID
        :type BizId: int
        :param TaskIdList: 查询的任务 ID 列表,任务 ID 列表最多支持 100 个。
        :type TaskIdList: list of str
        :param Limit: 任务返回结果数量,默认10,上限500。大文件任务忽略此参数,返回全量结果
        :type Limit: int
        """
        self.BizId = None
        self.TaskIdList = None
        self.Limit = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.TaskIdList = params.get("TaskIdList")
        self.Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DescribeScanResultListResponse(AbstractModel):
    """DescribeScanResultList返回参数结构体

    """

    def __init__(self):
        r"""
        :param Data: 要查询的语音检测任务的结果
注意:此字段可能返回 null,表示取不到有效值。
        :type Data: list of DescribeScanResult
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.Data = None
        self.RequestId = None

    def _deserialize(self, params):
        if params.get("Data") is not None:
            self.Data = []
            for item in params.get("Data"):
                obj = DescribeScanResult()
                obj._deserialize(item)
                self.Data.append(obj)
        self.RequestId = params.get("RequestId")

class DescribeUserInAndOutTimeRequest(AbstractModel):
    """DescribeUserInAndOutTime请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用ID
        :type BizId: int
        :param RoomId: 房间ID
        :type RoomId: int
        :param UserId: 用户ID
        :type UserId: int
        :param UserIdStr: 字符串类型用户ID
        :type UserIdStr: str
        :param RoomIdStr: 字符串类型房间ID
        :type RoomIdStr: str
        """
        self.BizId = None
        self.RoomId = None
        self.UserId = None
        self.UserIdStr = None
        self.RoomIdStr = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.RoomId = params.get("RoomId")
        self.UserId = params.get("UserId")
        self.UserIdStr = params.get("UserIdStr")
        self.RoomIdStr = params.get("RoomIdStr")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class DescribeUserInAndOutTimeResponse(AbstractModel):
    """DescribeUserInAndOutTime返回参数结构体

    """

    def __init__(self):
        r"""
        :param InOutList: 用户在房间得进出时间列表
        :type InOutList: list of InOutTimeInfo
        :param Duration: 用户在房间中总时长
        :type Duration: int
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.InOutList = None
        self.Duration = None
        self.RequestId = None

    def _deserialize(self, params):
        if params.get("InOutList") is not None:
            self.InOutList = []
            for item in params.get("InOutList"):
                obj = InOutTimeInfo()
                obj._deserialize(item)
                self.InOutList.append(obj)
        self.Duration = params.get("Duration")
        self.RequestId = params.get("RequestId")

class GetCustomizationListRequest(AbstractModel):
    """GetCustomizationList请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用 ID,登录控制台创建应用得到的AppID
        :type BizId: int
        """
        self.BizId = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class GetCustomizationListResponse(AbstractModel):
    """GetCustomizationList返回参数结构体

    """

    def __init__(self):
        r"""
        :param CustomizationConfigs: 语音消息转文本自学习模型配置
注意:此字段可能返回 null,表示取不到有效值。
        :type CustomizationConfigs: list of CustomizationConfigs
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.CustomizationConfigs = None
        self.RequestId = None

    def _deserialize(self, params):
        if params.get("CustomizationConfigs") is not None:
            self.CustomizationConfigs = []
            for item in params.get("CustomizationConfigs"):
                obj = CustomizationConfigs()
                obj._deserialize(item)
                self.CustomizationConfigs.append(obj)
        self.RequestId = params.get("RequestId")

class InOutTimeInfo(AbstractModel):
    """用户进出房间信息

    """

    def __init__(self):
        r"""
        :param StartTime: 进入房间时间
        :type StartTime: int
        :param EndTime: 退出房间时间
        :type EndTime: int
        """
        self.StartTime = None
        self.EndTime = None

    def _deserialize(self, params):
        self.StartTime = params.get("StartTime")
        self.EndTime = params.get("EndTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ModifyAppStatusRequest(AbstractModel):
    """ModifyAppStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用ID,创建应用后由后台生成并返回。
        :type BizId: int
        :param Status: 应用状态,取值:open/close
        :type Status: str
        """
        self.BizId = None
        self.Status = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ModifyAppStatusResp(AbstractModel):
    """ModifyAppStatus接口输出参数

    """

    def __init__(self):
        r"""
        :param BizId: GME应用ID
        :type BizId: int
        :param Status: 应用状态,取值:open/close
        :type Status: str
        """
        self.BizId = None
        self.Status = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ModifyAppStatusResponse(AbstractModel):
    """ModifyAppStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param Data: 修改应用开关状态返回数据
        :type Data: :class:`tencentcloud.gme.v20180711.models.ModifyAppStatusResp`
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.Data = None
        self.RequestId = None

    def _deserialize(self, params):
        if params.get("Data") is not None:
            self.Data = ModifyAppStatusResp()
            self.Data._deserialize(params.get("Data"))
        self.RequestId = params.get("RequestId")

class ModifyCustomizationRequest(AbstractModel):
    """ModifyCustomization请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用 ID,登录控制台创建应用得到的AppID
        :type BizId: int
        :param TextUrl: 文本文件
        :type TextUrl: str
        :param ModelId: 要修改的模型ID
        :type ModelId: str
        """
        self.BizId = None
        self.TextUrl = None
        self.ModelId = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.TextUrl = params.get("TextUrl")
        self.ModelId = params.get("ModelId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ModifyCustomizationResponse(AbstractModel):
    """ModifyCustomization返回参数结构体

    """

    def __init__(self):
        r"""
        :param ErrorCode: 返回值。0为成功,非0为失败。
        :type ErrorCode: int
        :param ModelId: 自学习模型ID
        :type ModelId: str
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.ErrorCode = None
        self.ModelId = None
        self.RequestId = None

    def _deserialize(self, params):
        self.ErrorCode = params.get("ErrorCode")
        self.ModelId = params.get("ModelId")
        self.RequestId = params.get("RequestId")

class ModifyCustomizationStateRequest(AbstractModel):
    """ModifyCustomizationState请求参数结构体

    """

    def __init__(self):
        r"""
        :param ModelId: 自学习模型ID
        :type ModelId: str
        :param ToState: 想要变换的模型状态,-1代表下线,1代表上线
        :type ToState: int
        :param BizId: 应用 ID,登录控制台创建应用得到的AppID
        :type BizId: int
        """
        self.ModelId = None
        self.ToState = None
        self.BizId = None

    def _deserialize(self, params):
        self.ModelId = params.get("ModelId")
        self.ToState = params.get("ToState")
        self.BizId = params.get("BizId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ModifyCustomizationStateResponse(AbstractModel):
    """ModifyCustomizationState返回参数结构体

    """

    def __init__(self):
        r"""
        :param ModelId: 自学习模型ID
        :type ModelId: str
        :param ErrorCode: 返回值。0为成功,非0为失败。
        :type ErrorCode: int
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.ModelId = None
        self.ErrorCode = None
        self.RequestId = None

    def _deserialize(self, params):
        self.ModelId = params.get("ModelId")
        self.ErrorCode = params.get("ErrorCode")
        self.RequestId = params.get("RequestId")

class ModifyUserMicStatusRequest(AbstractModel):
    """ModifyUserMicStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用ID
        :type BizId: int
        :param RoomId: 房间ID
        :type RoomId: str
        :param Users: 用户麦克风状态,数组长度不超过20
        :type Users: list of UserMicStatus
        """
        self.BizId = None
        self.RoomId = None
        self.Users = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.RoomId = params.get("RoomId")
        if params.get("Users") is not None:
            self.Users = []
            for item in params.get("Users"):
                obj = UserMicStatus()
                obj._deserialize(item)
                self.Users.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ModifyUserMicStatusResponse(AbstractModel):
    """ModifyUserMicStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param Result: 返回结果:0为成功,非0为失败
        :type Result: int
        :param ErrMsg: 错误信息
        :type ErrMsg: str
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.Result = None
        self.ErrMsg = None
        self.RequestId = None

    def _deserialize(self, params):
        self.Result = params.get("Result")
        self.ErrMsg = params.get("ErrMsg")
        self.RequestId = params.get("RequestId")

class OverseaTextStatisticsItem(AbstractModel):
    """海外转文本用量数据

    """

    def __init__(self):
        r"""
        :param Data: 统计值,单位:秒
注意:此字段可能返回 null,表示取不到有效值。
        :type Data: float
        """
        self.Data = None

    def _deserialize(self, params):
        self.Data = params.get("Data")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class RealTimeSpeechStatisticsItem(AbstractModel):
    """实时语音用量统计数据

    """

    def __init__(self):
        r"""
        :param MainLandDau: 大陆地区DAU
        :type MainLandDau: int
        :param MainLandPcu: 大陆地区PCU
        :type MainLandPcu: int
        :param MainLandDuration: 大陆地区总使用时长,单位为min
        :type MainLandDuration: int
        :param OverseaDau: 海外地区DAU
        :type OverseaDau: int
        :param OverseaPcu: 海外地区PCU
        :type OverseaPcu: int
        :param OverseaDuration: 海外地区总使用时长,单位为min
        :type OverseaDuration: int
        """
        self.MainLandDau = None
        self.MainLandPcu = None
        self.MainLandDuration = None
        self.OverseaDau = None
        self.OverseaPcu = None
        self.OverseaDuration = None

    def _deserialize(self, params):
        self.MainLandDau = params.get("MainLandDau")
        self.MainLandPcu = params.get("MainLandPcu")
        self.MainLandDuration = params.get("MainLandDuration")
        self.OverseaDau = params.get("OverseaDau")
        self.OverseaPcu = params.get("OverseaPcu")
        self.OverseaDuration = params.get("OverseaDuration")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class RealtimeSpeechConf(AbstractModel):
    """实时语音配置数据

    """

    def __init__(self):
        r"""
        :param Status: 实时语音服务开关,取值:open/close
        :type Status: str
        :param Quality: 实时语音音质类型,取值:high-高音质
        :type Quality: str
        """
        self.Status = None
        self.Quality = None

    def _deserialize(self, params):
        self.Status = params.get("Status")
        self.Quality = params.get("Quality")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class RealtimeTextStatisticsItem(AbstractModel):
    """实时语音转文本用量数据

    """

    def __init__(self):
        r"""
        :param Data: 统计值,单位:秒
注意:此字段可能返回 null,表示取不到有效值。
        :type Data: float
        """
        self.Data = None

    def _deserialize(self, params):
        self.Data = params.get("Data")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class RoomUser(AbstractModel):
    """房间内用户信息

    """

    def __init__(self):
        r"""
        :param RoomId: 房间id
        :type RoomId: int
        :param Uins: 房间里用户uin列表
注意:此字段可能返回 null,表示取不到有效值。
        :type Uins: list of int non-negative
        :param StrRoomId: 字符串房间id
注意:此字段可能返回 null,表示取不到有效值。
        :type StrRoomId: str
        """
        self.RoomId = None
        self.Uins = None
        self.StrRoomId = None

    def _deserialize(self, params):
        self.RoomId = params.get("RoomId")
        self.Uins = params.get("Uins")
        self.StrRoomId = params.get("StrRoomId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ScanDetail(AbstractModel):
    """语音检测详情

    """

    def __init__(self):
        r"""
        :param Label: 违规场景,参照Label定义
        :type Label: str
        :param Rate: 该场景下概率[0.00,100.00],分值越大违规概率越高
        :type Rate: str
        :param KeyWord: 违规关键字
        :type KeyWord: str
        :param StartTime: 关键字在音频的开始时间,从0开始的偏移量,单位为毫秒
        :type StartTime: int
        :param EndTime: 关键字在音频的结束时间,从0开始的偏移量,,单位为毫秒
        :type EndTime: int
        """
        self.Label = None
        self.Rate = None
        self.KeyWord = None
        self.StartTime = None
        self.EndTime = None

    def _deserialize(self, params):
        self.Label = params.get("Label")
        self.Rate = params.get("Rate")
        self.KeyWord = params.get("KeyWord")
        self.StartTime = params.get("StartTime")
        self.EndTime = params.get("EndTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ScanPiece(AbstractModel):
    """语音检测结果,Code 为 0 时返回

    """

    def __init__(self):
        r"""
        :param DumpUrl: 流检测时返回,音频转存地址,保留30min
注意:此字段可能返回 null,表示取不到有效值。
        :type DumpUrl: str
        :param HitFlag: 是否违规
        :type HitFlag: bool
        :param MainType: 违规主要类型
注意:此字段可能返回 null,表示取不到有效值。
        :type MainType: str
        :param ScanDetail: 语音检测详情
        :type ScanDetail: list of ScanDetail
        :param RoomId: gme实时语音房间ID,透传任务传入时的RoomId
注意:此字段可能返回 null,表示取不到有效值。
        :type RoomId: str
        :param OpenId: gme实时语音用户ID,透传任务传入时的OpenId
注意:此字段可能返回 null,表示取不到有效值。
        :type OpenId: str
        :param Info: 备注
注意:此字段可能返回 null,表示取不到有效值。
        :type Info: str
        :param Offset: 流检测时分片在流中的偏移时间,单位毫秒
注意:此字段可能返回 null,表示取不到有效值。
        :type Offset: int
        :param Duration: 流检测时分片时长
注意:此字段可能返回 null,表示取不到有效值。
        :type Duration: int
        :param PieceStartTime: 分片开始检测时间
注意:此字段可能返回 null,表示取不到有效值。
        :type PieceStartTime: int
        """
        self.DumpUrl = None
        self.HitFlag = None
        self.MainType = None
        self.ScanDetail = None
        self.RoomId = None
        self.OpenId = None
        self.Info = None
        self.Offset = None
        self.Duration = None
        self.PieceStartTime = None

    def _deserialize(self, params):
        self.DumpUrl = params.get("DumpUrl")
        self.HitFlag = params.get("HitFlag")
        self.MainType = params.get("MainType")
        if params.get("ScanDetail") is not None:
            self.ScanDetail = []
            for item in params.get("ScanDetail"):
                obj = ScanDetail()
                obj._deserialize(item)
                self.ScanDetail.append(obj)
        self.RoomId = params.get("RoomId")
        self.OpenId = params.get("OpenId")
        self.Info = params.get("Info")
        self.Offset = params.get("Offset")
        self.Duration = params.get("Duration")
        self.PieceStartTime = params.get("PieceStartTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ScanVoiceRequest(AbstractModel):
    """ScanVoice请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用ID,登录[控制台 - 服务管理](https://console.cloud.tencent.com/gamegme)创建应用得到的AppID
        :type BizId: int
        :param Scenes: 语音检测场景,参数值目前要求为 default。 预留场景设置: 谩骂、色情、广告、违禁等场景,具体取值见上述 Label 说明。
        :type Scenes: list of str
        :param Live: 是否为直播流。值为 false 时表示普通语音文件检测;为 true 时表示语音流检测。
        :type Live: bool
        :param Tasks: 语音检测任务列表,列表最多支持100个检测任务。结构体中包含:

DataId:数据的唯一ID

Url:数据文件的url,为 urlencode 编码,流式则为拉流地址

        :type Tasks: list of Task
        :param Callback: 异步检测结果回调地址,具体见上述回调相关说明。(说明:该字段为空时,必须通过接口(查询语音检测结果)获取检测结果)。
        :type Callback: str
        :param Lang: 语种,不传默认中文
        :type Lang: str
        """
        self.BizId = None
        self.Scenes = None
        self.Live = None
        self.Tasks = None
        self.Callback = None
        self.Lang = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.Scenes = params.get("Scenes")
        self.Live = params.get("Live")
        if params.get("Tasks") is not None:
            self.Tasks = []
            for item in params.get("Tasks"):
                obj = Task()
                obj._deserialize(item)
                self.Tasks.append(obj)
        self.Callback = params.get("Callback")
        self.Lang = params.get("Lang")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class ScanVoiceResponse(AbstractModel):
    """ScanVoice返回参数结构体

    """

    def __init__(self):
        r"""
        :param Data: 语音检测返回。Data 字段是 JSON 数组,每一个元素包含:
DataId: 请求中对应的 DataId。

TaskID :该检测任务的 ID,用于轮询语音检测结果。

        :type Data: list of ScanVoiceResult
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.Data = None
        self.RequestId = None

    def _deserialize(self, params):
        if params.get("Data") is not None:
            self.Data = []
            for item in params.get("Data"):
                obj = ScanVoiceResult()
                obj._deserialize(item)
                self.Data.append(obj)
        self.RequestId = params.get("RequestId")

class ScanVoiceResult(AbstractModel):
    """语音检测返回结果

    """

    def __init__(self):
        r"""
        :param DataId: 数据ID
        :type DataId: str
        :param TaskId: 任务ID
        :type TaskId: str
        """
        self.DataId = None
        self.TaskId = None

    def _deserialize(self, params):
        self.DataId = params.get("DataId")
        self.TaskId = params.get("TaskId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class StatisticsItem(AbstractModel):
    """用量数据单元

    """

    def __init__(self):
        r"""
        :param StatDate: 日期,格式为年-月-日,如2018-07-13
        :type StatDate: str
        :param Data: 统计值
        :type Data: int
        """
        self.StatDate = None
        self.Data = None

    def _deserialize(self, params):
        self.StatDate = params.get("StatDate")
        self.Data = params.get("Data")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class StreamTextStatisticsItem(AbstractModel):
    """流式转文本用量数据

    """

    def __init__(self):
        r"""
        :param Data: 统计值,单位:秒
注意:此字段可能返回 null,表示取不到有效值。
        :type Data: float
        """
        self.Data = None

    def _deserialize(self, params):
        self.Data = params.get("Data")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class Tag(AbstractModel):
    """标签列表

    """

    def __init__(self):
        r"""
        :param TagKey: 标签键
注意:此字段可能返回 null,表示取不到有效值。
        :type TagKey: str
        :param TagValue: 标签值
注意:此字段可能返回 null,表示取不到有效值。
        :type TagValue: str
        """
        self.TagKey = None
        self.TagValue = None

    def _deserialize(self, params):
        self.TagKey = params.get("TagKey")
        self.TagValue = params.get("TagValue")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class Task(AbstractModel):
    """语音检测任务列表

    """

    def __init__(self):
        r"""
        :param DataId: 数据的唯一ID
        :type DataId: str
        :param Url: 数据文件的url,为 urlencode 编码,流式则为拉流地址
        :type Url: str
        :param RoomId: gme实时语音房间ID,通过gme实时语音进行语音分析时输入
        :type RoomId: str
        :param OpenId: gme实时语音用户ID,通过gme实时语音进行语音分析时输入
        :type OpenId: str
        """
        self.DataId = None
        self.Url = None
        self.RoomId = None
        self.OpenId = None

    def _deserialize(self, params):
        self.DataId = params.get("DataId")
        self.Url = params.get("Url")
        self.RoomId = params.get("RoomId")
        self.OpenId = params.get("OpenId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class UpdateScanRoomsRequest(AbstractModel):
    """UpdateScanRooms请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用ID
        :type BizId: int
        :param RoomIdString: 需要送检的所有房间号。多个房间号之间用","分隔。示例:"0001,0002,0003"
        :type RoomIdString: str
        :param RoomIdRegex: 符合此正则表达式规则的房间号将被送检。示例:["^6.*"] 表示所有以6开头的房间号将被送检
        :type RoomIdRegex: list of str
        """
        self.BizId = None
        self.RoomIdString = None
        self.RoomIdRegex = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.RoomIdString = params.get("RoomIdString")
        self.RoomIdRegex = params.get("RoomIdRegex")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class UpdateScanRoomsResponse(AbstractModel):
    """UpdateScanRooms返回参数结构体

    """

    def __init__(self):
        r"""
        :param ErrorCode: 返回结果码
注意:此字段可能返回 null,表示取不到有效值。
        :type ErrorCode: int
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.ErrorCode = None
        self.RequestId = None

    def _deserialize(self, params):
        self.ErrorCode = params.get("ErrorCode")
        self.RequestId = params.get("RequestId")

class UpdateScanUsersRequest(AbstractModel):
    """UpdateScanUsers请求参数结构体

    """

    def __init__(self):
        r"""
        :param BizId: 应用ID
        :type BizId: int
        :param UserIdString: 需要送检的所有用户号。多个用户号之间用","分隔。示例:"0001,0002,0003"
        :type UserIdString: str
        :param UserIdRegex: 符合此正则表达式规则的用户号将被送检。示例:["^6.*"] 表示所有以6开头的用户号将被送检
        :type UserIdRegex: list of str
        """
        self.BizId = None
        self.UserIdString = None
        self.UserIdRegex = None

    def _deserialize(self, params):
        self.BizId = params.get("BizId")
        self.UserIdString = params.get("UserIdString")
        self.UserIdRegex = params.get("UserIdRegex")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class UpdateScanUsersResponse(AbstractModel):
    """UpdateScanUsers返回参数结构体

    """

    def __init__(self):
        r"""
        :param ErrorCode: 返回结果码
        :type ErrorCode: int
        :param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self.ErrorCode = None
        self.RequestId = None

    def _deserialize(self, params):
        self.ErrorCode = params.get("ErrorCode")
        self.RequestId = params.get("RequestId")

class UserMicStatus(AbstractModel):
    """用户麦克风状态

    """

    def __init__(self):
        r"""
        :param Uid: 用户ID
        :type Uid: int
        :param EnableMic: 是否开麦 。1闭麦  2开麦
        :type EnableMic: int
        """
        self.Uid = None
        self.EnableMic = None

    def _deserialize(self, params):
        self.Uid = params.get("Uid")
        self.EnableMic = params.get("EnableMic")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class VoiceFilterConf(AbstractModel):
    """语音过滤服务配置数据

    """

    def __init__(self):
        r"""
        :param Status: 语音过滤服务开关,取值:open/close
        :type Status: str
        """
        self.Status = None

    def _deserialize(self, params):
        self.Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class VoiceFilterStatisticsItem(AbstractModel):
    """语音过滤用量统计数据

    """

    def __init__(self):
        r"""
        :param Duration: 语音过滤总时长,单位为min
        :type Duration: int
        """
        self.Duration = None

    def _deserialize(self, params):
        self.Duration = params.get("Duration")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class VoiceMessageConf(AbstractModel):
    """离线语音服务配置数据

    """

    def __init__(self):
        r"""
        :param Status: 离线语音服务开关,取值:open/close
        :type Status: str
        :param Language: 离线语音支持语种,取值: all-全部,cnen-中英文。默认为中英文
        :type Language: str
        """
        self.Status = None
        self.Language = None

    def _deserialize(self, params):
        self.Status = params.get("Status")
        self.Language = params.get("Language")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))

class VoiceMessageStatisticsItem(AbstractModel):
    """语音消息用量统计信息

    """

    def __init__(self):
        r"""
        :param Dau: 离线语音DAU
        :type Dau: int
        """
        self.Dau = None

    def _deserialize(self, params):
        self.Dau = params.get("Dau")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            if name in memeber_set:
                memeber_set.remove(name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))


text:
using System;
using System.ComponentModel;
using System.Collections.Generic;

namespace AdventureWorks.EntityClasses.Sales
{
    using Person;
    using Production;

    /// Class which represents the entity 'Sales.SpecialOfferProduct'
	public partial class SpecialOfferProduct
	{
		#region Class Member Declarations
		private Product _product;
		private ISet<SalesOrderDetail> _salesOrderDetails;
		private SpecialOffer _specialOffer;
		private System.DateTime _modifiedDate;
		private System.Guid _rowguid;
		#endregion

		/// Initializes a new instance of the <see cref="SpecialOfferProduct"/> class.
		public SpecialOfferProduct() : base()
		{
			_salesOrderDetails = new HashSet<SalesOrderDetail>();
			OnCreated();
		}

		/// Method called from the constructor
		partial void OnCreated();

		/// Returns a hash code for this instance.
		/// <returns>A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. </returns>
		public override int GetHashCode()
		{
			int toReturn = base.GetHashCode();
			return toReturn;
		}

		/// Determines whether the specified object is equal to this instance.
		/// <param name="obj">The <see cref="System.Object"/> to compare with this instance.</param>
		/// <returns><c>true</c> if the specified <see cref="System.Object"/> is equal to this instance; otherwise, <c>false</c>.</returns>
		public override bool Equals(object obj)
		{
			return object.ReferenceEquals(this, obj);
		}

		#region Class Property Declarations
		/// Gets or sets the ModifiedDate field.
		public virtual System.DateTime ModifiedDate
		{
			get { return _modifiedDate; }
			set { _modifiedDate = value; }
		}

		/// Gets or sets the Rowguid field.
		public virtual System.Guid Rowguid
		{
			get { return _rowguid; }
			set { _rowguid = value; }
		}

		/// Represents the navigator which is mapped onto the association 'Sales.SpecialOfferProduct.Product - Production.Product.SpecialOfferProducts (m:1)'
		public virtual Product Product
		{
			get { return _product; }
			set { _product = value; }
		}

		/// Represents the navigator which is mapped onto the association 'Sales.SalesOrderDetail.SpecialOfferProduct - Sales.SpecialOfferProduct.SalesOrderDetails (m:1)'
		public virtual ISet<SalesOrderDetail> SalesOrderDetails
		{
			get { return _salesOrderDetails; }
			set { _salesOrderDetails = value; }
		}

		/// Represents the navigator which is mapped onto the association 'Sales.SpecialOfferProduct.SpecialOffer - Sales.SpecialOffer.SpecialOfferProducts (m:1)'
		public virtual SpecialOffer SpecialOffer
		{
			get { return _specialOffer; }
			set { _specialOffer = value; }
		}

		#endregion
	}
}

redpajama_set_name: RedPajamaGithub


text:
(function() {
	'use strict';

	angular
	.module('xpacswebApp')
	.factory('DownloadService', DownloadService);

	DownloadService.$inject = ['$http', 'AlertService'];

	function DownloadService ($http, AlertService) {

		var service = {
				get: get
		}

		return service;

		// http://jaliyaudagedara.blogspot.co.nz/2016/05/angularjs-download-files-by-sending.html

		function get( folder, filename ) {
			var url = '/api/dicom/download/' + folder;

			$http({
				method: 'GET',
				url: url,
				params: {
					filename: filename
				},
				responseType: 'arraybuffer'
			})
			.success(function (data, status, headers) {
				headers = headers();

				var filename = headers['x-filename'];
				var contentType = headers['content-type'];

				var linkElement = document.createElement('a');
				try {

					var blob = new Blob([data], { type: contentType });
					var url = window.URL.createObjectURL(blob);

					linkElement.setAttribute('href', url);
					linkElement.setAttribute('download', filename);

					var clickEvent = new MouseEvent("click", {
						"view": window,
						"bubbles": true,
						"cancelable": false
					});
					linkElement.dispatchEvent(clickEvent);

				} catch (ex) {
					console.log(ex);
					AlertService.error('Something is wrong. See the console.log.');
				}
			})
			.error(function (data) {
				console.log(data);
				AlertService.error('Something is wrong. See the console.log.');
			});

		}
	}
})();


text:
export class EntryType {
  public static readonly Credit = 'Credit';
  public static readonly Debit = 'Debit';

  public static readonly All = [
    EntryType.Credit,
    EntryType.Debit
  ];
}


text:
ACCEPTED

#### According to
Index Fungorum

#### Published in
New Botanist 22: 143 (1995)

#### Original name
Oidium pileae Bappamm., Hosag. & Udaiyan

### Remarks
null


text:
@interface PhonesTableViewController : UITableViewController

@property (strong, nonatomic) NSArray *phones;

@end


text:
<?xml version="1.0" encoding="UTF-8"?>
<clinical_study rank="497">
  <!-- This xml conforms to an XML Schema at:
    http://clinicaltrials.gov/ct2/html/images/info/public.xsd
 and an XML DTD at:
    http://clinicaltrials.gov/ct2/html/images/info/public.dtd -->
  <required_header>
    <download_date>ClinicalTrials.gov processed this data on May 14, 2015</download_date>
    <link_text>Link to the current ClinicalTrials.gov record.</link_text>
    <url>http://clinicaltrials.gov/show/NCT01548482</url>
  </required_header>
  <id_info>
    <org_study_id>NCI-2012-02848</org_study_id>
    <secondary_id>NCI-2012-02848</secondary_id>
    <secondary_id>CDR0000728823</secondary_id>
    <secondary_id>PJC-008</secondary_id>
    <secondary_id>9041</secondary_id>
    <secondary_id>U01CA132123</secondary_id>
    <secondary_id>UM1CA186644</secondary_id>
    <nct_id>NCT01548482</nct_id>
  </id_info>
  <brief_title>Trebananib And Temsirolimus in Treating Patients With Solid Tumors That Are Metastatic or Cannot Be Removed by Surgery</brief_title>
  <official_title>A Phase I Trial of AMG 386 and Temsirolimus in Advanced Solid Tumors With an Expansion Cohort in Uterine Cancer, Renal Cell Carcinoma and Carcinoid Tumor</official_title>
  <sponsors>
    <lead_sponsor>
      <agency>National Cancer Institute (NCI)</agency>
      <agency_class>NIH</agency_class>
    </lead_sponsor>
  </sponsors>
  <source>National Cancer Institute (NCI)</source>
  <oversight_info>
    <authority>United States: Food and Drug Administration</authority>
  </oversight_info>
  <brief_summary>
    <textblock>
      This phase I trial studies the side effects and the best dose of trebananib and temsirolimus
      when given together in treating patients with solid tumors that are metastatic or cannot be
      removed by surgery. Trebananib may stop the growth of tumor cells by blocking blood flow to
      the tumor. Temsirolimus may stop the growth of tumor cells by blocking some of the enzymes
      needed for cell growth. Giving trebananib with temsirolimus may be an effective treatment
      for solid tumors.
    </textblock>
  </brief_summary>
  <detailed_description>
    <textblock>
      PRIMARY OBJECTIVES:

      I. To determine the recommended phase II dose (RP2D) and safety profile of AMG 386
      (trebananib) in combination with temsirolimus in patients with advanced solid tumors.

      SECONDARY OBJECTIVES:

      I. To evaluate pharmacodynamic (PD) effects of both drugs when administered in combination,
      with the goal of identifying potential predictive and PD markers that need further
      exploration and validation in future trials.

      II. To explore preliminary anti-tumor activity of both drugs when administered at the RP2D
      to patients with advanced endometrial cancer, renal cell carcinoma, or carcinoid tumor.

      OUTLINE: This is a dose-escalation study of trebananib.

      Patients receive trebananib intravenously (IV) over 60 minutes and temsirolimus IV over
      30-60 minutes on days 1, 8, 15, and 22. Courses repeat every 28 days in the absence of
      disease progression or unacceptable toxicity.

      After completion of study treatment, patients are followed up for 30 days.
    </textblock>
  </detailed_description>
  <overall_status>Active, not recruiting</overall_status>
  <start_date>March 2012</start_date>
  <primary_completion_date type="Anticipated">September 2015</primary_completion_date>
  <phase>Phase 1</phase>
  <study_type>Interventional</study_type>
  <study_design>Endpoint Classification: Safety Study, Intervention Model: Single Group Assignment, Masking: Open Label, Primary Purpose: Treatment</study_design>
  <primary_outcome>
    <measure>RP2D of trebananib and temsirolimus defined as the dose level at which =< 1/6 patients experienced dose-limiting toxicity (DLT) as assessed by the National Cancer Institute (NCI) CTCAE version 4.0</measure>
    <time_frame>28 days</time_frame>
    <safety_issue>Yes</safety_issue>
  </primary_outcome>
  <primary_outcome>
    <measure>Safety profile of trebananib and temsirolimus as assessed by NCI CTCAE version 4.0</measure>
    <time_frame>Up to 30 days</time_frame>
    <safety_issue>Yes</safety_issue>
    <description>Frequency and severity of adverse events will be tabulated using counts and proportions detailing frequently occurring, serious and severe events of interest. Adverse events will be summarized using all adverse events experienced, although a subanalysis may be conducted including only those adverse events in which the treating physician deems possibly, probably or definitely attributable to one or both study treatments.</description>
  </primary_outcome>
  <secondary_outcome>
    <measure>Objective response to treatment assessed using the Response Evaluation Criteria in Solid Tumors (RECIST) criteria 1.1</measure>
    <time_frame>Up to 30 days</time_frame>
    <safety_issue>No</safety_issue>
    <description>Predictors of clinical outcomes will be investigated using logistic regression, Cox proportional hazards regression and/or generalized estimating equations as appropriate.</description>
  </secondary_outcome>
  <secondary_outcome>
    <measure>PD effects of both drugs when administered in combination</measure>
    <time_frame>Course 1 days 1, 3, and 8 and course 2 day 1</time_frame>
    <safety_issue>No</safety_issue>
    <description>Standard descriptive statistics, such as the mean, median, range and proportion, will be used to summarize the patient sample and to estimate parameters of interest. Ninety-five percent confidence intervals will be provided for estimates of interest where possible.</description>
  </secondary_outcome>
  <number_of_arms>1</number_of_arms>
  <enrollment type="Anticipated">60</enrollment>
  <condition>Adult Solid Neoplasm</condition>
  <condition>Lung Carcinoid Tumor</condition>
  <condition>Recurrent Digestive System Neuroendocrine Tumor G1</condition>
  <condition>Recurrent Renal Cell Carcinoma</condition>
  <condition>Recurrent Uterine Corpus Sarcoma</condition>
  <condition>Stage III Renal Cell Cancer</condition>
  <condition>Stage IIIB Uterine Sarcoma</condition>
  <condition>Stage IIIC Uterine Sarcoma</condition>
  <condition>Stage IV Renal Cell Cancer</condition>
  <condition>Stage IVA Uterine Sarcoma</condition>
  <condition>Stage IVB Uterine Sarcoma</condition>
  <arm_group>
    <arm_group_label>Treatment (trebananib, temsirolimus)</arm_group_label>
    <arm_group_type>Experimental</arm_group_type>
    <description>Patients receive trebananib IV over 60 minutes and temsirolimus IV over 30-60 minutes on days 1, 8, 15, and 22. Courses repeat every 28 days in the absence of disease progression or unacceptable toxicity.</description>
  </arm_group>
  <intervention>
    <intervention_type>Other</intervention_type>
    <intervention_name>Laboratory Biomarker Analysis</intervention_name>
    <description>Correlative studies</description>
    <arm_group_label>Treatment (trebananib, temsirolimus)</arm_group_label>
  </intervention>
  <intervention>
    <intervention_type>Other</intervention_type>
    <intervention_name>Pharmacological Study</intervention_name>
    <description>Correlative studies</description>
    <arm_group_label>Treatment (trebananib, temsirolimus)</arm_group_label>
  </intervention>
  <intervention>
    <intervention_type>Drug</intervention_type>
    <intervention_name>Temsirolimus</intervention_name>
    <description>Given IV</description>
    <arm_group_label>Treatment (trebananib, temsirolimus)</arm_group_label>
    <other_name>CCI-779</other_name>
    <other_name>CCI-779 Rapamycin Analog</other_name>
    <other_name>Cell Cycle Inhibitor 779</other_name>
    <other_name>Rapamycin Analog</other_name>
    <other_name>Rapamycin Analog CCI-779</other_name>
    <other_name>TEMSIROLIMUS</other_name>
    <other_name>Torisel</other_name>
  </intervention>
  <intervention>
    <intervention_type>Biological</intervention_type>
    <intervention_name>Trebananib</intervention_name>
    <description>Given IV</description>
    <arm_group_label>Treatment (trebananib, temsirolimus)</arm_group_label>
    <other_name>AMG 386</other_name>
    <other_name>Angiopoietin 1/2-Neutralizing Peptibody AMG 386</other_name>
    <other_name>TREBANANIB</other_name>
  </intervention>
  <eligibility>
    <criteria>
      <textblock>
        Inclusion Criteria:

          -  DOSE ESCALATION COHORTS: Patients must have histologically or cytologically confirmed
             malignancy that is metastatic or unresectable and for which standard curative or
             palliative measures do not exist or are no longer effective

          -  DOSE EXPANSION COHORTS: Patients must have histologically and/or cytologically
             confirmed uterine cancer, renal cell cancer or carcinoid tumor that is metastatic or
             unresectable and for which standard curative or palliative measures do not exist or
             are no longer effective

          -  Patients must have measurable disease, defined as at least one lesion that can be
             accurately measured in at least one dimension (longest diameter to be recorded for
             non-nodal lesions and short axis for nodal lesions) as >= 20 mm with conventional
             techniques or as >= 10 mm with spiral computed tomography (CT) scan, magnetic
             resonance imaging (MRI), or calipers by clinical exam

          -  DOSE ESCALATION COHORTS: No limitation on prior therapy; however, there must be at
             least a 4 week interval between initiation of study treatment and any prior
             radiotherapy or systemic therapy, 6 weeks if the last regimen included carmustine
             (BCNU) or mitomycin C; exceptions may be made however, for low dose,
             non-myelosuppressive radiotherapy for symptomatic palliation; please contact the
             study coordinator at the Princess Margaret Hospital (PMH) Phase I Consortium Central
             Office or the principal investigator if any questions arise about interpretation of
             this criterion

          -  EXPANSION COHORTS:

               -  Uterine cancer: Patients diagnosed with uterine cancer will be eligible provided
                  they have received at least one prior line of chemotherapy for recurrent or
                  metastatic disease unless the investigator feels that cytotoxic chemotherapy is
                  contraindicated; prior hormonal treatment will be allowed; prior anti-angiogenic
                  agents and prior treatment with agents targeting phosphatidylinositol 3-kinase
                  (PI3K)- protein kinase B (AkT)- mammalian target of rapamycin (mTOR) pathway are
                  not allowed

               -  Renal cell cancer: Patients diagnosed with renal cell cancer (RCC) will be
                  required to have received at least one prior line anti- vascular endothelial
                  growth factor (VEGF)/ receptor (R) treatment (i.e. bevacizumab, sunitinib,
                  and/or sorafenib); prior treatment with agents targeting PI3K-Akt-mTOR pathway
                  is not allowed

               -  Carcinoid tumor: Patients diagnosed with carcinoid tumor must have demonstrated
                  radiographic evidence of disease progression within six months prior to
                  enrollment; prior and/or concurrent long-acting somatostatin analogue therapy is
                  allowed; if patient is continued on a long-acting somatostatin analogue, a
                  stable dose for >= 2 months prior to study entry is required with documentation
                  of progressive disease on current dose; prior radiolabeled octreotide therapy is
                  allowed; prior regional treatments for liver metastasis are permitted including:

                    -  Selective internal radiation therapy (i.e. brachytherapy, radiolabeled
                       microsphere embolization, etc)

                    -  Hepatic artery chemoembolization

                    -  Hepatic artery embolization

                    -  Hepatic artery infusional chemotherapy

                    -  Radiofrequency ablation

               -  Patients must be > 12 weeks from regional treatments and show progressive
                  disease in the liver after regional therapy or must have measurable disease
                  outside the liver; patients may have received one prior line of anti-VEGF/R
                  treatment (e.g. bevacizumab, sunitinib, and/or sorafenib); prior treatment with
                  agents targeting PI3K-Akt-mTOR pathway is not allowed

          -  Eastern Cooperative Oncology Group (ECOG) performance status =< 1 (Karnofsky >= 70%)

          -  Life expectancy of greater than 12 weeks

          -  Leukocytes >= 3.0 x 10^9/L

          -  Absolute neutrophil count >= 1.5 x 10^9/L

          -  Platelets >= 100 x 10^9/L

          -  Hemoglobin >= 90 g/L (or >= 9 g/dL)

          -  Total bilirubin =< institutional upper limit of normal (ULN)

          -  Aspartate aminotransferase (AST) (serum glutamic oxaloacetic transaminase
             [SGOT])/alanine aminotransferase (ALT) (serum glutamate pyruvate transaminase [SGPT])
             =< 2.5 x institutional upper limit of normal if no known liver metastasis or =< 5 x
             institutional upper limit of normal if known liver metastasis

          -  Partial thromboplastin time (PTT) or activated PTT (aPTT) =< 1.5 x ULN per
             institutional laboratory range and international normalized ratio (INR) =< 1.5

          -  Creatinine =< institutional ULN OR creatinine clearance > 40 mL/min per 24 hours (h)
             urine collection or calculated according to the Cockcroft-Gault formula

          -  Urinary protein =< 30 mg/dL in urinalysis or =< 1 + on dipstick, unless quantitative
             protein is < 1000 mg in a 24 h urine sample

          -  Total cholesterol < 400 mg/dL (or < 10.34 mmol/L)

          -  Serum triglyceride level < 500 mg/dL (or < 5.7 mmol/L)

          -  Generally well-controlled blood pressure with systolic blood pressure =< 140 mm Hg
             AND diastolic blood pressure =< 90 mm Hg prior to enrollment; the use of
             anti-hypertensive medications to control hypertension is permitted

          -  Women of child-bearing potential and men must agree to use adequate contraception
             (hormonal or barrier method of birth control; abstinence) prior to study entry and
             for the duration of study participation, and 6 months after completion of AMG386
             and/or temsirolimus administration; should a woman become pregnant or suspect she is
             pregnant while she or her partner is participating in this study, she should inform
             her treating physician immediately; men treated or enrolled on this protocol must
             also agree to use adequate contraception prior to the study, for the duration of
             study participation, and 6 months after completion of AMG386 and/or temsirolimus
             administration

          -  Ability to understand and the willingness to sign a written informed consent document

        Exclusion Criteria:

          -  History of central nervous system metastases

          -  History of venous or arterial thromboembolism within 12 months prior to
             enrollment/randomization; patients requiring ongoing anticoagulation with therapeutic
             dosages of low molecular weight heparin or warfarin are excluded

          -  History of clinically significant bleeding within 6 months of
             enrollment/randomization

          -  Unresolved toxicities from prior systemic therapy that are Common Terminology
             Criteria for Adverse Events (CTCAE) version 4.0 >= grade 2 in severity except
             alopecia

          -  Currently or previously treated with AMG 386, or other molecules that inhibit the
             angiopoietins or TEK tyrosine kinase, endothelial (Tie2) receptor

          -  Clinically significant cardiovascular disease within 12 months prior to
             enrollment/randomization, including myocardial infarction, unstable angina, grade 2
             or greater peripheral vascular disease, cerebrovascular accident, transient ischemic
             attack, congestive heart failure, or arrhythmias not controlled by outpatient
             medication or placement of percutaneous transluminal coronary angioplasty/stent

          -  Major surgery within 28 days prior to enrollment or still recovering from prior
             surgery

          -  Minor surgical procedures, except placement of tunneled central venous access device
             within 3 days (7 days if with VEGF inhibitor) prior to randomization/enrollment

          -  Treatment within 30 days prior to enrollment with strong immune modulators, including
             but not limited to systemic cyclosporine, tacrolimus, sirolimus, mycophenolate
             mofetil, methotrexate, azathioprine, rapamycin, thalidomide, lenalidomide, and
             targeted immune modulators such as abatacept (CTLA-4-Ig), adalimumab, alefacept,
             anakinra, belatacept (LEA29Y), efalizumab, etanercept, infliximab, or rituximab

          -  Non-healing wound, ulcer (including gastrointestinal), or fracture

          -  Subject not consenting to the use of highly effective contraceptive precautions
             (e.g., double barrier method [i.e., condom plus diaphragm]) during the course of the
             study and for 6 months after administration of the last study medication

          -  History of allergic reactions attributed to compounds of similar chemical or biologic
             composition to AMG 386 or temsirolimus

          -  Patients who have had chemotherapy or radiotherapy within 4 weeks (6 weeks for
             nitrosoureas or mitomycin C) prior to entering the study or those who have not
             recovered from adverse events due to agents administered more than 4 weeks earlier

          -  Patients who have not yet completed at least 21 days (30 days for prior monoclonal
             antibody therapy) since ending other investigational device or drug trials, or who
             are currently receiving other investigational treatments

          -  Temsirolimus is a cytochrome P450 3A4 (CYP3A4) substrate; patients receiving any
             medications or substances that are strong inhibitors or inducers of CYP3A4 are
             ineligible

          -  Uncontrolled intercurrent illness including, but not limited to, ongoing or active
             infection, symptomatic congestive heart failure, unstable angina pectoris, cardiac
             arrhythmia, or psychiatric illness/social situations that would limit compliance with
             study requirements

          -  Pregnant women are excluded from this study; breastfeeding should be discontinued if
             the mother is treated with AMG 386; these potential risks may also apply to
             temsirolimus

          -  Human immunodeficiency virus (HIV)-positive patients on combination antiretroviral
             therapy are ineligible

          -  Patients with pre-existing clinically significant pulmonary infiltrates of unknown
             origin

          -  Patients with an indwelling peritoneal or pleural catheter that is used to manage
             malignant effusions

          -  Known intra-abdominal inflammatory process or serious gastrointestinal ulceration

          -  No abdominal fistula, gastrointestinal perforation, or intra-abdominal abscess within
             the past 6 months

          -  No gastric or esophageal varices

          -  Patients with primary bowel tumors in situ or recurrent disease at bowel anastomosis
      </textblock>
    </criteria>
    <gender>Both</gender>
    <minimum_age>18 Years</minimum_age>
    <maximum_age>N/A</maximum_age>
    <healthy_volunteers>No</healthy_volunteers>
  </eligibility>
  <overall_official>
    <last_name>Philippe Bedard</last_name>
    <role>Principal Investigator</role>
    <affiliation>University Health Network-Princess Margaret Hospital</affiliation>
  </overall_official>
  <location>
    <facility>
      <name>BCCA-Vancouver Cancer Centre</name>
      <address>
        <city>Vancouver</city>
        <state>British Columbia</state>
        <zip>V5Z 4E6</zip>
        <country>Canada</country>
      </address>
    </facility>
  </location>
  <location>
    <facility>
      <name>Juravinski Cancer Centre at Hamilton Health Sciences</name>
      <address>
        <city>Hamilton</city>
        <state>Ontario</state>
        <zip>L8V 5C2</zip>
        <country>Canada</country>
      </address>
    </facility>
  </location>
  <location>
    <facility>
      <name>University Health Network-Princess Margaret Hospital</name>
      <address>
        <city>Toronto</city>
        <state>Ontario</state>
        <zip>M5G 2M9</zip>
        <country>Canada</country>
      </address>
    </facility>
  </location>
  <location_countries>
    <country>Canada</country>
  </location_countries>
  <verification_date>May 2015</verification_date>
  <lastchanged_date>May 6, 2015</lastchanged_date>
  <firstreceived_date>February 24, 2012</firstreceived_date>
  <responsible_party>
    <responsible_party_type>Sponsor</responsible_party_type>
  </responsible_party>
  <is_fda_regulated>Yes</is_fda_regulated>
  <is_section_801>No</is_section_801>
  <has_expanded_access>No</has_expanded_access>
  <condition_browse>
    <!-- CAUTION:  The following MeSH terms are assigned with an imperfect algorithm  -->
    <mesh_term>Apudoma</mesh_term>
    <mesh_term>Carcinoid Tumor</mesh_term>
    <mesh_term>Carcinoma, Renal Cell</mesh_term>
    <mesh_term>Neoplasms</mesh_term>
    <mesh_term>Neuroendocrine Tumors</mesh_term>
    <mesh_term>Sarcoma</mesh_term>
  </condition_browse>
  <intervention_browse>
    <!-- CAUTION:  The following MeSH terms are assigned with an imperfect algorithm  -->
    <mesh_term>Everolimus</mesh_term>
    <mesh_term>Sirolimus</mesh_term>
    <mesh_term>Trenananib</mesh_term>
  </intervention_browse>
  <!-- Results have not yet been posted for this study                                -->
</clinical_study>


text:
<!DOCTYPE HTML>

<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

001package io.ebean.cache;
002
003import io.ebean.meta.MetricVisitor;
004
005import java.util.LinkedHashMap;
006import java.util.Map;
007import java.util.Set;
008
009/**
010 * Represents part of the "L2" server side cache.
011 * <p>
012 * This is used to cache beans or query results (bean collections).
013 * </p>
014 * <p>
015 * There are 2 ServerCache's for each bean type. One is used as the 'bean cache'
016 * which holds beans of a given type. The other is the 'query cache' holding
017 * query results for a given type.
018 * </p>
019 */
020public interface ServerCache {
021
022  default Map<Object, Object> getAll(Set<Object> keys) {
023
024    Map<Object, Object> map = new LinkedHashMap<>();
025    for (Object key : keys) {
026      Object value = get(key);
027      if (value != null) {
028        map.put(key, value);
029      }
030    }
031    return map;
032  }
033
034  /**
035   * Return the value given the key.
036   */
037  Object get(Object id);
038
039  /**
040   * Put all the values in the cache.
041   */
042  default void putAll(Map<Object, Object> keyValues) {
043    keyValues.forEach(this::put);
044  }
045
046  /**
047   * Put the value in the cache with a given id.
048   */
049  void put(Object id, Object value);
050
051  /**
052   * Remove the entries from the cache given the id values.
053   */
054  default void removeAll(Set<Object> keys) {
055    keys.forEach(this::remove);
056  }
057
058  /**
059   * Remove a entry from the cache given its id.
060   */
061  void remove(Object id);
062
063  /**
064   * Clear all entries from the cache.
065   */
066  void clear();
067
068  /**
069   * Return the number of entries in the cache.
070   */
071  int size();
072
073  /**
074   * Return the hit ratio the cache is currently getting.
075   */
076  int getHitRatio();
077
078  /**
079   * Return statistics for the cache.
080   *
081   * @param reset if true the statistics are reset.
082   */
083  ServerCacheStatistics getStatistics(boolean reset);
084
085  /**
086   * Visit the metrics for the cache.
087   */
088  default void visit(MetricVisitor visitor) {
089    // do nothing by default
090  }
091}