blob: 6df74bc73e9ded917eba469c6dc25f7c369ce30a [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
namespace java org.apache.iotdb.common.rpc.thrift
namespace py iotdb.thrift.common
namespace go common
// Define a set of ip:port address
struct TEndPoint {
1: required string ip
2: required i32 port
}
// The return status code and message in each response.
struct TSStatus {
1: required i32 code
2: optional string message
3: optional list<TSStatus> subStatus
4: optional TEndPoint redirectNode
5: optional bool needRetry
}
enum TConsensusGroupType {
ConfigRegion,
DataRegion,
SchemaRegion
}
struct TConsensusGroupId {
1: required TConsensusGroupType type
2: required i32 id
}
struct TSeriesPartitionSlot {
1: required i32 slotId
}
struct TTimePartitionSlot {
1: required i64 startTime
}
struct TRegionReplicaSet {
1: required TConsensusGroupId regionId
2: required list<TDataNodeLocation> dataNodeLocations
}
struct TNodeResource {
1: required i32 cpuCoreNum
2: required i64 maxMemory
}
struct TConfigNodeLocation {
1: required i32 configNodeId
2: required TEndPoint internalEndPoint
3: required TEndPoint consensusEndPoint
}
struct TDataNodeLocation {
1: required i32 dataNodeId
// TEndPoint for DataNode's client rpc
2: required TEndPoint clientRpcEndPoint
// TEndPoint for DataNode's cluster internal rpc
3: required TEndPoint internalEndPoint
// TEndPoint for exchange data between DataNodes
4: required TEndPoint mPPDataExchangeEndPoint
// TEndPoint for DataNode's dataRegion consensus protocol
5: required TEndPoint dataRegionConsensusEndPoint
// TEndPoint for DataNode's schemaRegion consensus protocol
6: required TEndPoint schemaRegionConsensusEndPoint
}
struct TDataNodeConfiguration {
1: required TDataNodeLocation location
2: required TNodeResource resource
}
enum TRegionMigrateFailedType {
AddPeerFailed,
RemovePeerFailed,
RemoveConsensusGroupFailed,
DeleteRegionFailed,
CreateRegionFailed,
Disconnect,
}
enum TRegionMaintainTaskStatus {
TASK_NOT_EXIST,
PROCESSING,
SUCCESS,
FAIL,
}
struct TFlushReq {
1: optional string isSeq
2: optional list<string> storageGroups
}
struct TSettleReq {
1: required list<string> paths
}
// for node management
struct TSchemaNode {
1: required string nodeName
2: required byte nodeType
}
struct TSetConfigurationReq {
1: required map<string,string> configs
2: required i32 nodeId
}
// for TTL
struct TSetTTLReq {
1: required list<string> pathPattern
2: required i64 TTL
3: required bool isDataBase
}
struct TShowTTLReq {
1: required list<string> pathPattern
}
// for File
struct TFile {
1: required string fileName
2: required binary file
}
struct TFilesResp {
1: required TSStatus status
2: required list<TFile> files
}
// quota
struct TSpaceQuota {
1: optional i64 diskSize
2: optional i64 deviceNum
3: optional i64 timeserieNum
}
enum ThrottleType {
REQUEST_NUMBER,
REQUEST_SIZE,
WRITE_NUMBER,
WRITE_SIZE,
READ_NUMBER,
READ_SIZE
}
struct TTimedQuota {
1: required i64 timeUnit
2: required i64 softLimit
}
struct TThrottleQuota {
1: optional map<ThrottleType, TTimedQuota> throttleLimit
2: optional i64 memLimit
3: optional i32 cpuLimit
}
struct TSetSpaceQuotaReq {
1: required list<string> database
2: required TSpaceQuota spaceLimit
}
struct TSetThrottleQuotaReq {
1: required string userName
2: required TThrottleQuota throttleQuota
}
struct TLicense {
1: required i64 licenseIssueTimestamp
2: required i64 expireTimestamp
4: required i16 dataNodeNumLimit
5: required i32 cpuCoreNumLimit
6: required i64 deviceNumLimit
7: required i64 sensorNumLimit
8: required i64 disconnectionFromActiveNodeTimeLimit
9: required i16 mlNodeNumLimit
}
enum TServiceType {
ConfigNodeInternalService,
DataNodeInternalService,
DataNodeMPPService,
DataNodeExternalService,
}
struct TServiceProvider {
1: required TEndPoint endPoint
2: required TServiceType serviceType
}
struct TSender {
1: optional TDataNodeLocation dataNodeLocation
2: optional TConfigNodeLocation configNodeLocation
}
struct TTestConnectionResult {
1: required TServiceProvider serviceProvider
2: required TSender sender
3: required bool success
4: optional string reason
}
struct TTestConnectionResp {
1: required TSStatus status
2: required list<TTestConnectionResult> resultList
}
struct TNodeLocations {
1: optional list<TConfigNodeLocation> configNodeLocations
2: optional list<TDataNodeLocation> dataNodeLocations
}
enum TAggregationType {
COUNT,
AVG,
SUM,
FIRST_VALUE,
LAST_VALUE,
MAX_TIME,
MIN_TIME,
MAX_VALUE,
MIN_VALUE,
EXTREME,
COUNT_IF,
TIME_DURATION,
MODE,
COUNT_TIME,
STDDEV,
STDDEV_POP,
STDDEV_SAMP,
VARIANCE,
VAR_POP,
VAR_SAMP,
MAX_BY,
MIN_BY,
UDAF
}
struct TShowConfigurationTemplateResp {
1: required TSStatus status
2: required string content
}
struct TShowConfigurationResp {
1: required TSStatus status
2: required string content
}