github.com/sacloud/iaas-api-go@v1.12.0/internal/define/bridge.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/define/names" 19 "github.com/sacloud/iaas-api-go/internal/define/ops" 20 "github.com/sacloud/iaas-api-go/internal/dsl" 21 "github.com/sacloud/iaas-api-go/internal/dsl/meta" 22 "github.com/sacloud/iaas-api-go/naked" 23 ) 24 25 const ( 26 bridgeAPIName = "Bridge" 27 bridgeAPIPathName = "bridge" 28 ) 29 30 var bridgeAPI = &dsl.Resource{ 31 Name: bridgeAPIName, 32 PathName: bridgeAPIPathName, 33 PathSuffix: dsl.CloudAPISuffix, 34 Operations: dsl.Operations{ 35 // find 36 ops.Find(bridgeAPIName, bridgeNakedType, findParameter, bridgeView), 37 38 // create 39 ops.Create(bridgeAPIName, bridgeNakedType, bridgeCreateParam, bridgeView), 40 41 // read 42 ops.Read(bridgeAPIName, bridgeNakedType, bridgeView), 43 44 // update 45 ops.Update(bridgeAPIName, bridgeNakedType, bridgeUpdateParam, bridgeView), 46 47 // delete 48 ops.Delete(bridgeAPIName), 49 }, 50 } 51 52 var ( 53 bridgeNakedType = meta.Static(naked.Bridge{}) 54 55 bridgeView = &dsl.Model{ 56 Name: bridgeAPIName, 57 NakedType: bridgeNakedType, 58 Fields: []*dsl.FieldDesc{ 59 fields.ID(), 60 fields.Name(), 61 fields.Description(), 62 fields.CreatedAt(), 63 fields.Region(), 64 fields.BridgeInfo(), 65 fields.SwitchInZone(), 66 }, 67 } 68 69 bridgeCreateParam = &dsl.Model{ 70 Name: names.CreateParameterName(bridgeAPIName), 71 NakedType: bridgeNakedType, 72 Fields: []*dsl.FieldDesc{ 73 fields.Name(), 74 fields.Description(), 75 }, 76 } 77 78 bridgeUpdateParam = &dsl.Model{ 79 Name: names.UpdateParameterName(bridgeAPIName), 80 NakedType: bridgeNakedType, 81 Fields: []*dsl.FieldDesc{ 82 fields.Name(), 83 fields.Description(), 84 }, 85 } 86 )