github.com/sacloud/iaas-api-go@v1.12.0/internal/define/monitors.go (about)

     1  // Copyright 2022-2023 The sacloud/iaas-api-go Authors
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //      http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package define
    16  
    17  import (
    18  	"github.com/sacloud/iaas-api-go/internal/dsl"
    19  	"github.com/sacloud/iaas-api-go/internal/dsl/meta"
    20  	"github.com/sacloud/iaas-api-go/naked"
    21  )
    22  
    23  type monitorsDef struct{}
    24  
    25  var monitors = &monitorsDef{}
    26  
    27  func (m *monitorsDef) cpuTimeModel() *dsl.Model {
    28  	return &dsl.Model{
    29  		Name: "CPUTimeActivity",
    30  		Fields: []*dsl.FieldDesc{
    31  			{
    32  				Name: "Values",
    33  				Type: &dsl.Model{
    34  					Name:      "MonitorCPUTimeValue",
    35  					NakedType: meta.Static(naked.MonitorCPUTimeValue{}),
    36  					IsArray:   true,
    37  					Fields: []*dsl.FieldDesc{
    38  						fields.MonitorTime(),
    39  						fields.MonitorCPUTime(),
    40  					},
    41  				},
    42  				Tags: &dsl.FieldTags{
    43  					MapConv: "[]CPU",
    44  				},
    45  			},
    46  		},
    47  		NakedType: meta.Static(naked.MonitorValues{}),
    48  	}
    49  }
    50  
    51  func (m *monitorsDef) diskModel() *dsl.Model {
    52  	return &dsl.Model{
    53  		Name: "DiskActivity",
    54  		Fields: []*dsl.FieldDesc{
    55  			{
    56  				Name: "Values",
    57  				Type: &dsl.Model{
    58  					Name:      "MonitorDiskValue",
    59  					NakedType: meta.Static(naked.MonitorDiskValue{}),
    60  					IsArray:   true,
    61  					Fields: []*dsl.FieldDesc{
    62  						fields.MonitorTime(),
    63  						fields.MonitorDiskRead(),
    64  						fields.MonitorDiskWrite(),
    65  					},
    66  				},
    67  				Tags: &dsl.FieldTags{
    68  					MapConv: "[]Disk",
    69  				},
    70  			},
    71  		},
    72  		NakedType: meta.Static(naked.MonitorValues{}),
    73  	}
    74  }
    75  
    76  func (m *monitorsDef) interfaceModel() *dsl.Model {
    77  	return &dsl.Model{
    78  		Name: "InterfaceActivity",
    79  		Fields: []*dsl.FieldDesc{
    80  			{
    81  				Name: "Values",
    82  				Type: &dsl.Model{
    83  					Name:      "MonitorInterfaceValue",
    84  					NakedType: meta.Static(naked.MonitorInterfaceValue{}),
    85  					IsArray:   true,
    86  					Fields: []*dsl.FieldDesc{
    87  						fields.MonitorTime(),
    88  						fields.MonitorInterfaceReceive(),
    89  						fields.MonitorInterfaceSend(),
    90  					},
    91  				},
    92  				Tags: &dsl.FieldTags{
    93  					MapConv: "[]Interface",
    94  				},
    95  			},
    96  		},
    97  		NakedType: meta.Static(naked.MonitorValues{}),
    98  	}
    99  }
   100  
   101  func (m *monitorsDef) routerModel() *dsl.Model {
   102  	return &dsl.Model{
   103  		Name: "RouterActivity",
   104  		Fields: []*dsl.FieldDesc{
   105  			{
   106  				Name: "Values",
   107  				Type: &dsl.Model{
   108  					Name:      "MonitorRouterValue",
   109  					NakedType: meta.Static(naked.MonitorRouterValue{}),
   110  					IsArray:   true,
   111  					Fields: []*dsl.FieldDesc{
   112  						fields.MonitorTime(),
   113  						fields.MonitorRouterIn(),
   114  						fields.MonitorRouterOut(),
   115  					},
   116  				},
   117  				Tags: &dsl.FieldTags{
   118  					MapConv: "[]Router",
   119  				},
   120  			},
   121  		},
   122  		NakedType: meta.Static(naked.MonitorValues{}),
   123  	}
   124  }
   125  
   126  func (m *monitorsDef) databaseModel() *dsl.Model {
   127  	return &dsl.Model{
   128  		Name: "DatabaseActivity",
   129  		Fields: []*dsl.FieldDesc{
   130  			{
   131  				Name: "Values",
   132  				//Type: meta.Static([]naked.MonitorDatabaseValue{}),
   133  				Type: &dsl.Model{
   134  					Name:      "MonitorDatabaseValue",
   135  					NakedType: meta.Static(naked.MonitorDatabaseValue{}),
   136  					IsArray:   true,
   137  					Fields: []*dsl.FieldDesc{
   138  						fields.MonitorTime(),
   139  						fields.MonitorDatabaseTotalMemorySize(),
   140  						fields.MonitorDatabaseUsedMemorySize(),
   141  						fields.MonitorDatabaseTotalDisk1Size(),
   142  						fields.MonitorDatabaseUsedDisk1Size(),
   143  						fields.MonitorDatabaseTotalDisk2Size(),
   144  						fields.MonitorDatabaseUsedDisk2Size(),
   145  						fields.MonitorDatabaseBinlogUsedSizeKiB(),
   146  						fields.MonitorDatabaseDelayTimeSec(),
   147  					},
   148  				},
   149  				Tags: &dsl.FieldTags{
   150  					MapConv: "[]Database",
   151  				},
   152  			},
   153  		},
   154  		NakedType: meta.Static(naked.MonitorValues{}),
   155  	}
   156  }
   157  
   158  func (m *monitorsDef) freeDiskSizeModel() *dsl.Model {
   159  	return &dsl.Model{
   160  		Name: "FreeDiskSizeActivity",
   161  		Fields: []*dsl.FieldDesc{
   162  			{
   163  				Name: "Values",
   164  				Type: &dsl.Model{
   165  					Name:      "MonitorFreeDiskSizeValue",
   166  					NakedType: meta.Static(naked.MonitorFreeDiskSizeValue{}),
   167  					IsArray:   true,
   168  					Fields: []*dsl.FieldDesc{
   169  						fields.MonitorTime(),
   170  						fields.MonitorFreeDiskSize(),
   171  					},
   172  				},
   173  				Tags: &dsl.FieldTags{
   174  					MapConv: "[]FreeDiskSize",
   175  				},
   176  			},
   177  		},
   178  		NakedType: meta.Static(naked.MonitorValues{}),
   179  	}
   180  }
   181  
   182  func (m *monitorsDef) responseTimeSecModel() *dsl.Model {
   183  	return &dsl.Model{
   184  		Name: "ResponseTimeSecActivity",
   185  		Fields: []*dsl.FieldDesc{
   186  			{
   187  				Name: "Values",
   188  				Type: &dsl.Model{
   189  					Name:      "MonitorResponseTimeSecValue",
   190  					NakedType: meta.Static(naked.MonitorResponseTimeSecValue{}),
   191  					IsArray:   true,
   192  					Fields: []*dsl.FieldDesc{
   193  						fields.MonitorTime(),
   194  						fields.MonitorResponseTimeSec(),
   195  					},
   196  				},
   197  				Tags: &dsl.FieldTags{
   198  					MapConv: "[]ResponseTimeSec",
   199  				},
   200  			},
   201  		},
   202  		NakedType: meta.Static(naked.MonitorValues{}),
   203  	}
   204  }
   205  
   206  func (m *monitorsDef) linkModel() *dsl.Model {
   207  	return &dsl.Model{
   208  		Name: "LinkActivity",
   209  		Fields: []*dsl.FieldDesc{
   210  			{
   211  				Name: "Values",
   212  				Type: &dsl.Model{
   213  					Name:      "MonitorLinkValue",
   214  					NakedType: meta.Static(naked.MonitorLinkValue{}),
   215  					IsArray:   true,
   216  					Fields: []*dsl.FieldDesc{
   217  						fields.MonitorTime(),
   218  						fields.MonitorUplinkBPS(),
   219  						fields.MonitorDownlinkBPS(),
   220  					},
   221  				},
   222  				Tags: &dsl.FieldTags{
   223  					MapConv: "[]Link",
   224  				},
   225  			},
   226  		},
   227  		NakedType: meta.Static(naked.MonitorValues{}),
   228  	}
   229  }
   230  
   231  func (m *monitorsDef) connectionModel() *dsl.Model {
   232  	return &dsl.Model{
   233  		Name: "ConnectionActivity",
   234  		Fields: []*dsl.FieldDesc{
   235  			{
   236  				Name: "Values",
   237  				//Type: meta.Static([]naked.MonitorConnectionValue{}),
   238  				Type: &dsl.Model{
   239  					Name:      "MonitorConnectionValue",
   240  					NakedType: meta.Static(naked.MonitorConnectionValue{}),
   241  					IsArray:   true,
   242  					Fields: []*dsl.FieldDesc{
   243  						fields.MonitorTime(),
   244  						fields.MonitorActiveConnections(),
   245  						fields.MonitorConnectionsPerSec(),
   246  					},
   247  				},
   248  				Tags: &dsl.FieldTags{
   249  					MapConv: "[]Connection",
   250  				},
   251  			},
   252  		},
   253  		NakedType: meta.Static(naked.MonitorValues{}),
   254  	}
   255  }
   256  
   257  func (m *monitorsDef) localRouterModel() *dsl.Model {
   258  	return &dsl.Model{
   259  		Name: "LocalRouterActivity",
   260  		Fields: []*dsl.FieldDesc{
   261  			{
   262  				Name: "Values",
   263  				Type: &dsl.Model{
   264  					Name:      "MonitorLocalRouterValue",
   265  					NakedType: meta.Static(naked.MonitorLocalRouterValue{}),
   266  					IsArray:   true,
   267  					Fields: []*dsl.FieldDesc{
   268  						fields.MonitorTime(),
   269  						fields.MonitorLocalRouterReceiveBytesPerSec(),
   270  						fields.MonitorLocalRouterSendBytesPerSec(),
   271  					},
   272  				},
   273  				Tags: &dsl.FieldTags{
   274  					MapConv: "[]LocalRouter",
   275  				},
   276  			},
   277  		},
   278  		NakedType: meta.Static(naked.MonitorValues{}),
   279  	}
   280  }