github.com/cloudwan/edgelq-sdk@v1.15.4/monitoring/proto/api-skeleton-v4.yaml (about) 1 name: monitoring.edgelq.com 2 proto: 3 package: 4 name: ntt.monitoring 5 currentVersion: v4 6 goPackage: github.com/cloudwan/edgelq/monitoring 7 protoImportPathPrefix: edgelq/monitoring/proto 8 service: 9 name: Monitoring 10 defaultHost: monitoring.edgelq.com 11 oauthScopes: https://apis.edgelq.com 12 13 imports: 14 - meta.goten.com 15 - secrets.edgelq.com 16 17 resources: 18 - name: Project 19 multiRegion: 20 isPolicyHolder: true 21 22 - name: Bucket 23 parents: 24 - Project 25 scopeAttributes: 26 - Region 27 idPattern: "[\\\\w./-]{2,128}" 28 29 - name: MonitoredResourceDescriptor 30 optOuts: 31 basicActions: 32 - GetMonitoredResourceDescriptor 33 - ListMonitoredResourceDescriptors 34 parents: 35 - meta.goten.com/Service 36 idPattern: "[\\\\w./-]{2,128}" 37 actions: 38 - name: GetMonitoredResourceDescriptor 39 verb: get 40 grpcTranscoding: 41 isBasic: true 42 httpMethod: get 43 responseName: MonitoredResourceDescriptor 44 skipResponseMsgGen: true 45 withStoreHandle: 46 readOnly: true 47 transaction: NONE 48 - name: ListMonitoredResourceDescriptors 49 verb: list 50 opResourceInfo: 51 isCollection: true 52 isPlural: true 53 grpcTranscoding: 54 isBasic: true 55 httpMethod: get 56 withStoreHandle: 57 transaction: NONE 58 readOnly: true 59 60 - name: MetricDescriptor 61 optOuts: 62 # replace basic actions in order to maintain wire-compatibility with stackdriver api 63 basicActions: 64 - "{Get,Create,Update,Delete}MetricDescriptor" 65 - "ListMetricDescriptors" 66 idPattern: "[\\\\w./-]{4,128}" 67 parents: 68 - Project 69 multiRegion: 70 syncType: ALWAYS_IN_SCOPE 71 actions: 72 - name: GetMetricDescriptor 73 verb: get 74 grpcTranscoding: 75 isBasic: true 76 httpMethod: get 77 responseName: MetricDescriptor 78 skipResponseMsgGen: true 79 withStoreHandle: 80 readOnly: true 81 transaction: NONE 82 - name: CreateMetricDescriptor 83 verb: create 84 opResourceInfo: 85 isCollection: true 86 requestPaths: 87 resourceParent: [ "parent" ] 88 resourceBody: [ "metric_descriptor" ] 89 grpcTranscoding: 90 isBasic: true 91 httpMethod: post 92 responseName: MetricDescriptor 93 skipResponseMsgGen: true 94 withStoreHandle: 95 transaction: SNAPSHOT 96 - name: UpdateMetricDescriptor 97 verb: update 98 opResourceInfo: 99 isCollection: false 100 requestPaths: 101 resourceBody: [ "metric_descriptor" ] 102 responsePaths: 103 resourceName: [ "name" ] 104 grpcTranscoding: 105 isBasic: true 106 httpMethod: put 107 responseName: MetricDescriptor 108 skipResponseMsgGen: true 109 withStoreHandle: 110 transaction: SNAPSHOT 111 - name: DeleteMetricDescriptor 112 verb: delete 113 grpcTranscoding: 114 isBasic: true 115 httpMethod: delete 116 responseName: google.protobuf.Empty 117 skipResponseMsgGen: true 118 withStoreHandle: 119 transaction: SNAPSHOT 120 - name: ListMetricDescriptors 121 verb: list 122 opResourceInfo: 123 isCollection: true 124 isPlural: true 125 grpcTranscoding: 126 isBasic: true 127 httpMethod: get 128 withStoreHandle: 129 transaction: NONE 130 131 - name: TimeSerie 132 optOuts: 133 nameField: true 134 metadataField: true 135 standardCrudAccess: true 136 resourceChange: true 137 paging: true 138 parents: 139 - Project 140 - Bucket 141 actions: 142 - name: ListTimeSeries 143 verb: query # dont use 'list' as it would be matched and provided with implementation 144 grpcTranscoding: 145 httpMethod: get 146 isBasic: true 147 # TODO: TimeSerie has parent, but no name field. Perhaps type should still be generated in goten 148 # so this is supported without hard overwrites 149 httpPathOverrides: 150 - "/v4/{parent=projects/*}/timeSeries" 151 - "/v4/{parent=projects/*/regions/*/buckets/*}/timeSeries" 152 opResourceInfo: 153 isCollection: true 154 withStoreHandle: 155 readOnly: true 156 transaction: NONE 157 multiRegionRouting: 158 skipCodeGenBasedRouting: true 159 - name: QueryProjectTimeSeriesStats 160 verb: queryProjectStats 161 grpcTranscoding: 162 httpMethod: get 163 isBasic: true 164 # TODO: TimeSerie has parent, but no name field. Perhaps type should still be generated in goten 165 # so this is supported without hard overwrites 166 httpPathOverrides: 167 - "/v4/{project=projects/*}/timeSeries" 168 opResourceInfo: 169 isCollection: true 170 withStoreHandle: 171 readOnly: true 172 transaction: NONE 173 multiRegionRouting: 174 regionIdFieldPaths: 175 - region_id 176 - name: QueryServiceTimeSeriesStats 177 verb: queryServiceStats 178 grpcTranscoding: 179 httpMethod: get 180 isBasic: true 181 # TODO: TimeSerie has parent, but no name field. Perhaps type should still be generated in goten 182 # so this is supported without hard overwrites 183 httpPathOverrides: 184 - "/v4/{service=services/*}/timeSeries" 185 opResourceInfo: 186 isCollection: true 187 withStoreHandle: 188 readOnly: true 189 transaction: NONE 190 multiRegionRouting: 191 regionIdFieldPaths: 192 - region_id 193 - name: CreateTimeSeries 194 verb: batchCreate 195 grpcTranscoding: 196 httpMethod: post 197 isBasic: true 198 # TODO: TimeSerie has parent, but no name field. Perhaps type should still be generated in goten 199 # so this is supported without hard overwrites 200 httpPathOverrides: 201 - "/v4/{parent=projects/*}/timeSeries" 202 - "/v4/{parent=projects/*/regions/*/buckets/*}/timeSeries" 203 httpBodyField: time_series 204 opResourceInfo: 205 isCollection: true 206 responseName: CreateTimeSeriesResponse 207 withStoreHandle: 208 readOnly: true 209 transaction: NONE 210 multiRegionRouting: 211 skipCodeGenBasedRouting: true 212 - name: WatchTimeSeries 213 verb: watch 214 responseName: WatchTimeSeriesResponse 215 streamingResponse: true 216 withStoreHandle: 217 readOnly: true 218 transaction: NONE 219 multiRegionRouting: 220 skipCodeGenBasedRouting: true 221 222 - name: TimeSeriesForwarderSink 223 parents: 224 - Project 225 multiRegion: 226 syncType: ALWAYS_IN_SCOPE 227 228 - name: TimeSeriesCollectionRule 229 parents: 230 - Project 231 multiRegion: 232 syncType: ALWAYS_IN_SCOPE 233 234 - name: PhantomTimeSerie 235 parents: 236 - Project 237 scopeAttributes: 238 - Region 239 idPattern: "[\\\\w+/=]{1,256}" 240 multiRegion: 241 syncType: NEVER 242 243 - name: AlertingPolicy 244 plural: AlertingPolicies 245 optIns: 246 searchable: true 247 parents: 248 - Project 249 scopeAttributes: 250 - Region 251 252 - name: AlertingCondition 253 optIns: 254 searchable: true 255 parents: 256 - AlertingPolicy 257 258 - name: Alert 259 optOuts: 260 basicActions: 261 - CreateAlert 262 parents: 263 - AlertingCondition 264 idPattern: "[a-zA-Z0-9_.:-]{1,128}" 265 multiRegion: 266 syncType: NEVER 267 actions: 268 - name: BulkCreateAlerts 269 opResourceInfo: 270 isCollection: true 271 withStoreHandle: 272 transaction: MANUAL 273 - name: BulkUpdateAlerts 274 opResourceInfo: 275 isCollection: true 276 withStoreHandle: 277 transaction: MANUAL 278 279 - name: Notification 280 parents: 281 - AlertingPolicy 282 idPattern: "[a-zA-Z0-9_.:-]{1,128}" 283 multiRegion: 284 syncType: NEVER 285 286 - name: NotificationChannel 287 parents: 288 - Project 289 actions: 290 # Action to test a notification channel 291 - name: TestNotificationChannel 292 verb: test 293 opResourceInfo: 294 isCollection: false 295 isPlural: false 296 responseName: google.protobuf.Empty 297 skipResponseMsgGen: true 298 withStoreHandle: 299 transaction: SNAPSHOT 300 readOnly: false 301 302 # Internal resource for time series recovery store 303 # We must persist sharding info to guarantee that recovering is possible at all. 304 # If we change for example shards count per day, then we can only reshard for the 305 # next one. If we change maximum AP period we want to support, we must also do 306 # this in proper way - change config of controller, then wait till next period starts. 307 - name: RecoveryStoreShardingInfo 308 scopeAttributes: 309 - Region 310 multiRegion: 311 syncType: NEVER 312 idPattern: "[a-zA-Z0-9_.-]{1,128}"