github.com/m3db/m3@v1.5.0/src/dbnode/generated/proto/namespace/namespace.proto (about)

     1  syntax = "proto3";
     2  
     3  package namespace;
     4  
     5  import "google/protobuf/struct.proto";
     6  import "google/protobuf/wrappers.proto";
     7  import "github.com/m3db/m3/src/dbnode/generated/proto/namespace/schema.proto";
     8  
     9  message RetentionOptions {
    10      int64 retentionPeriodNanos                     = 1;
    11      int64 blockSizeNanos                           = 2;
    12      int64 bufferFutureNanos                        = 3;
    13      int64 bufferPastNanos                          = 4;
    14      bool  blockDataExpiry                          = 5;
    15      int64 blockDataExpiryAfterNotAccessPeriodNanos = 6;
    16      int64 futureRetentionPeriodNanos               = 7;
    17  }
    18  
    19  message IndexOptions {
    20      bool  enabled        = 1;
    21      int64 blockSizeNanos = 2;
    22  }
    23  
    24  message NamespaceOptions {
    25      bool bootstrapEnabled                           = 1;
    26      bool flushEnabled                               = 2;
    27      bool writesToCommitLog                          = 3;
    28      bool cleanupEnabled                             = 4;
    29      bool repairEnabled                              = 5;
    30      RetentionOptions retentionOptions               = 6;
    31      bool snapshotEnabled                            = 7;
    32      IndexOptions indexOptions                       = 8;
    33      SchemaOptions schemaOptions                     = 9;
    34      bool coldWritesEnabled                          = 10;
    35      NamespaceRuntimeOptions runtimeOptions          = 11;
    36      google.protobuf.BoolValue cacheBlocksOnRetrieve = 12;
    37      AggregationOptions aggregationOptions           = 13;
    38      StagingState stagingState                       = 14;
    39  
    40      // Use larger field ID to ensure new fields are always added before extended options.
    41      ExtendedOptions extendedOptions                 = 1000;
    42  }
    43  
    44  // AggregationOptions is a set of options for aggregating data
    45  // within the namespace.
    46  message AggregationOptions {
    47      // aggregations is a repeated field to support the ability to send aggregated data
    48      // to a namespace also receiving unaggregated data. In this case, the namespace will
    49      // have one Aggregation with aggregated set to false and another with aggregated set to true.
    50      repeated Aggregation aggregations = 1;
    51  }
    52  
    53  // Aggregation describes data points within the namespace.
    54  message Aggregation {
    55      // aggregated is true if data points are aggregated, false otherwise.
    56      bool aggregated = 1;
    57  
    58      // attributes specifies how to aggregate data when aggregated is set to true.
    59      // This field is ignored when aggregated is false and required when aggregated
    60      // is true.
    61      AggregatedAttributes attributes = 2;
    62  }
    63  
    64  // AggregatedAttributes describe how to aggregate data.
    65  message AggregatedAttributes {
    66      // resolutionNanos is the time range to aggregate data across.
    67      int64 resolutionNanos = 1;
    68      DownsampleOptions downsampleOptions = 2;
    69  }
    70  
    71  // DownsampleOptions is a set of options related to downsampling data.
    72  message DownsampleOptions {
    73      // all indicates whether to send data points to this namespace. If false,
    74      // data points must be sent via rollup/recording rules. Defaults to true.
    75      bool all = 1;
    76  }
    77  
    78  // StagingState is state related to the namespace's availability for
    79  // reads and writes.
    80  message StagingState {
    81      StagingStatus status = 1;
    82  }
    83  
    84  // StagingStatus represents the current status of the namespace.
    85  enum StagingStatus {
    86      // Namespace has an unknown staging status.
    87      UNKNOWN      = 0;
    88      // Namespace is being initialized and is not ready to receive traffic.
    89      INITIALIZING = 1;
    90      // Namespace is ready to receive traffic.
    91      READY        = 2;
    92  }
    93  
    94  message Registry {
    95      map<string, NamespaceOptions> namespaces = 1;
    96  }
    97  
    98  message NamespaceRuntimeOptions {
    99      google.protobuf.DoubleValue writeIndexingPerCPUConcurrency = 1;
   100      google.protobuf.DoubleValue flushIndexingPerCPUConcurrency = 2;
   101  }
   102  
   103  message ExtendedOptions {
   104      string type                    = 1;
   105      google.protobuf.Struct options = 2;
   106  }