This is an automated email from the ASF dual-hosted git repository.

ocket8888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git


The following commit(s) were added to refs/heads/master by this push:
     new 3192836086 Update CDN in a Box enroller to use TO API v5 (#7795)
3192836086 is described below

commit 319283608617c7c92db5daf0ccfd0c9a42a08905
Author: Zach Hoffman <[email protected]>
AuthorDate: Tue Sep 12 21:48:17 2023 -0600

    Update CDN in a Box enroller to use TO API v5 (#7795)
    
    * Session.CreateServerCapabilityV5 -> Session.CreateServerCapability
    
    * Session.GetServerCapabilitiesV5 -> Session.GetServerCapabilities
    
    * Session.UpdateServerCapabilityV5 -> Session.UpdateServerCapability
    
    * Update CiaB enroller to use TO API v5
    
    * Update field names for API v5
    
    * Remove server response ID validation
---
 infrastructure/cdn-in-a-box/enroller/Dockerfile    |  1 +
 infrastructure/cdn-in-a-box/enroller/enroller.go   | 65 +++++++++-------------
 .../cdn-in-a-box/enroller/server_template.json     |  9 ++-
 .../cdn-in-a-box/traffic_ops/to-access.sh          |  2 +-
 .../deliveryservices/010-demo1.json                |  2 +-
 .../deliveryservices/020-demo2.json                |  2 +-
 .../testing/api/v5/server_capabilities_test.go     | 12 ++--
 traffic_ops/v5-client/servercapability.go          | 12 ++--
 8 files changed, 47 insertions(+), 58 deletions(-)

diff --git a/infrastructure/cdn-in-a-box/enroller/Dockerfile 
b/infrastructure/cdn-in-a-box/enroller/Dockerfile
index 9c431ae837..35a51fa657 100644
--- a/infrastructure/cdn-in-a-box/enroller/Dockerfile
+++ b/infrastructure/cdn-in-a-box/enroller/Dockerfile
@@ -40,6 +40,7 @@ COPY ./go.mod ./go.sum 
/go/src/github.com/apache/trafficcontrol/
 COPY ./vendor/ /go/src/github.com/apache/trafficcontrol/vendor/
 COPY ./traffic_ops/toclientlib/ 
/go/src/github.com/apache/trafficcontrol/traffic_ops/toclientlib/
 COPY ./traffic_ops/v4-client/ 
/go/src/github.com/apache/trafficcontrol/traffic_ops/v4-client/
+COPY ./traffic_ops/v5-client/ 
/go/src/github.com/apache/trafficcontrol/traffic_ops/v5-client/
 COPY ./infrastructure/cdn-in-a-box/ 
/go/src/github.com/apache/trafficcontrol/infrastructure/cdn-in-a-box/
 
 # varnishcfg requires t3c for ToData struct and not needed for enroller
diff --git a/infrastructure/cdn-in-a-box/enroller/enroller.go 
b/infrastructure/cdn-in-a-box/enroller/enroller.go
index c3a031afed..22bdb274c7 100644
--- a/infrastructure/cdn-in-a-box/enroller/enroller.go
+++ b/infrastructure/cdn-in-a-box/enroller/enroller.go
@@ -34,7 +34,7 @@ import (
 
        log "github.com/apache/trafficcontrol/lib/go-log"
        tc "github.com/apache/trafficcontrol/lib/go-tc"
-       client "github.com/apache/trafficcontrol/traffic_ops/v4-client"
+       client "github.com/apache/trafficcontrol/traffic_ops/v5-client"
 
        "github.com/fsnotify/fsnotify"
        "github.com/kelseyhightower/envconfig"
@@ -51,7 +51,7 @@ func newSession(reqTimeout time.Duration, toURL string, 
toUser string, toPass st
        return session{s}, err
 }
 
-func (s session) getParameter(m tc.Parameter, header http.Header) 
(tc.Parameter, error) {
+func (s session) getParameter(m tc.ParameterV5, header http.Header) 
(tc.ParameterV5, error) {
        // TODO: s.GetParameterByxxx() does not seem to work with values with 
spaces --
        // doing this the hard way for now
        opts := client.RequestOptions{Header: header}
@@ -70,7 +70,7 @@ func (s session) getParameter(m tc.Parameter, header 
http.Header) (tc.Parameter,
 // enrollType takes a json file and creates a Type object using the TO API
 func enrollType(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.Type
+       var s tc.TypeV5
        err := dec.Decode(&s)
        if err != nil {
                log.Infof("error decoding Type: %s", err)
@@ -100,7 +100,7 @@ func enrollType(toSession *session, r io.Reader) error {
 // enrollCDN takes a json file and creates a CDN object using the TO API
 func enrollCDN(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.CDN
+       var s tc.CDNV5
        err := dec.Decode(&s)
        if err != nil {
                log.Infof("error decoding CDN: %v", err)
@@ -128,7 +128,7 @@ func enrollCDN(toSession *session, r io.Reader) error {
 
 func enrollASN(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.ASN
+       var s tc.ASNV5
        err := dec.Decode(&s)
        if err != nil {
                log.Infof("error decoding ASN: %s\n", err)
@@ -158,7 +158,7 @@ func enrollASN(toSession *session, r io.Reader) error {
 // enrollCachegroup takes a json file and creates a Cachegroup object using 
the TO API
 func enrollCachegroup(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.CacheGroupNullable
+       var s tc.CacheGroupNullableV5
        err := dec.Decode(&s)
        if err != nil {
                log.Infof("error decoding Cache Group: '%s'", err)
@@ -187,7 +187,7 @@ func enrollCachegroup(toSession *session, r io.Reader) 
error {
 
 func enrollTopology(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.Topology
+       var s tc.TopologyV5
        err := dec.Decode(&s)
        if err != nil && err != io.EOF {
                log.Infof("error decoding Topology: %s", err)
@@ -216,7 +216,7 @@ func enrollTopology(toSession *session, r io.Reader) error {
 
 func enrollDeliveryService(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.DeliveryServiceV4
+       var s tc.DeliveryServiceV5
        err := dec.Decode(&s)
        if err != nil {
                log.Infof("error decoding DeliveryService: %v", err)
@@ -227,7 +227,7 @@ func enrollDeliveryService(toSession *session, r io.Reader) 
error {
        if err != nil {
                for _, alert := range alerts.Alerts.Alerts {
                        if strings.Contains(alert.Text, "already exists") {
-                               log.Infof("Delivery Service '%s' already 
exists", *s.XMLID)
+                               log.Infof("Delivery Service '%s' already 
exists", s.XMLID)
                                return nil
                        }
                }
@@ -318,10 +318,7 @@ func enrollDeliveryServiceServer(toSession *session, r 
io.Reader) error {
                if len(servers.Response) == 0 {
                        return errors.New("no server with hostName " + sn)
                }
-               if servers.Response[0].ID == nil {
-                       return fmt.Errorf("Traffic Ops gave back a 
representation for server '%s' with null or undefined ID", sn)
-               }
-               serverIDs = append(serverIDs, *servers.Response[0].ID)
+               serverIDs = append(serverIDs, servers.Response[0].ID)
        }
        resp, _, err := toSession.CreateDeliveryServiceServers(dsID, serverIDs, 
true, client.RequestOptions{})
        if err != nil {
@@ -333,7 +330,7 @@ func enrollDeliveryServiceServer(toSession *session, r 
io.Reader) error {
 
 func enrollDivision(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.Division
+       var s tc.DivisionV5
        err := dec.Decode(&s)
        if err != nil {
                log.Infof("error decoding Division: %s", err)
@@ -361,21 +358,18 @@ func enrollDivision(toSession *session, r io.Reader) 
error {
 
 func enrollOrigin(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.Origin
+       var s tc.OriginV5
        err := dec.Decode(&s)
        if err != nil {
                log.Infof("error decoding Origin: %v", err)
                return err
        }
-       if s.Name == nil {
-               return errors.New("cannot create an Origin with no name")
-       }
 
        alerts, _, err := toSession.CreateOrigin(s, client.RequestOptions{})
        if err != nil {
                for _, alert := range alerts.Alerts.Alerts {
                        if alert.Level == tc.ErrorLevel.String() && 
strings.Contains(alert.Text, "already exists") {
-                               log.Infof("Origin '%s' already exists", *s.Name)
+                               log.Infof("Origin '%s' already exists", s.Name)
                                return nil
                        }
                }
@@ -392,7 +386,7 @@ func enrollOrigin(toSession *session, r io.Reader) error {
 
 func enrollParameter(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var params []tc.Parameter
+       var params []tc.ParameterV5
        err := dec.Decode(&params)
        if err != nil {
                log.Infof("error decoding Parameter: %s\n", err)
@@ -469,7 +463,7 @@ func enrollParameter(toSession *session, r io.Reader) error 
{
 
 func enrollPhysLocation(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.PhysLocation
+       var s tc.PhysLocationV5
        err := dec.Decode(&s)
        if err != nil {
                err = fmt.Errorf("error decoding Physical Location: %v", err)
@@ -500,7 +494,7 @@ func enrollPhysLocation(toSession *session, r io.Reader) 
error {
 
 func enrollRegion(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.Region
+       var s tc.RegionV5
        err := dec.Decode(&s)
        if err != nil {
                log.Infof("error decoding Region: %s\n", err)
@@ -529,7 +523,7 @@ func enrollRegion(toSession *session, r io.Reader) error {
 
 func enrollStatus(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.StatusNullable
+       var s tc.StatusV5
        err := dec.Decode(&s)
        if err != nil {
                log.Infof("error decoding Status: %s", err)
@@ -557,7 +551,7 @@ func enrollStatus(toSession *session, r io.Reader) error {
 
 func enrollTenant(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.Tenant
+       var s tc.TenantV5
        err := dec.Decode(&s)
        if err != nil {
                log.Infof("error decoding Tenant: %s", err)
@@ -568,7 +562,7 @@ func enrollTenant(toSession *session, r io.Reader) error {
        if err != nil {
                for _, alert := range alerts.Alerts.Alerts {
                        if alert.Level == tc.ErrorLevel.String() && 
strings.Contains(alert.Text, "already exists") {
-                               log.Infof("tenant %s already exists", s.Name)
+                               log.Infof("tenant %s already exists", *s.Name)
                                return nil
                        }
                }
@@ -617,7 +611,7 @@ func enrollUser(toSession *session, r io.Reader) error {
 // enrollProfile takes a json file and creates a Profile object using the TO 
API
 func enrollProfile(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var profile tc.Profile
+       var profile tc.ProfileV5
 
        err := dec.Decode(&profile)
        if err != nil {
@@ -700,7 +694,7 @@ func enrollProfile(toSession *session, r io.Reader) error {
                if p.Value != nil {
                        value = *p.Value
                }
-               param := tc.Parameter{ConfigFile: configFile, Name: name, 
Value: value, Secure: secure}
+               param := tc.ParameterV5{ConfigFile: configFile, Name: name, 
Value: value, Secure: secure}
                eparam, err := toSession.getParameter(param, nil)
                if err != nil {
                        // create it
@@ -750,7 +744,7 @@ func enrollProfile(toSession *session, r io.Reader) error {
 // enrollServer takes a json file and creates a Server object using the TO API
 func enrollServer(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.ServerV40
+       var s tc.ServerV5
        err := dec.Decode(&s)
        if err != nil {
                log.Infof("error decoding Server: %v", err)
@@ -774,7 +768,7 @@ func enrollServer(toSession *session, r io.Reader) error {
 // enrollServerCapability takes a json file and creates a ServerCapabilityV41 
object using the TO API
 func enrollServerCapability(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.ServerCapabilityV41
+       var s tc.ServerCapabilityV5
        err := dec.Decode(&s)
        if err != nil {
                err = fmt.Errorf("error decoding Server Capability: %v", err)
@@ -782,7 +776,7 @@ func enrollServerCapability(toSession *session, r 
io.Reader) error {
                return err
        }
 
-       alerts, _, err := toSession.CreateServerCapabilityV41(s, 
client.RequestOptions{})
+       alerts, _, err := toSession.CreateServerCapability(s, 
client.RequestOptions{})
        if err != nil {
                err = fmt.Errorf("error creating Server Capability: %v - 
alerts: %+v", err, alerts.Alerts)
                log.Infoln(err)
@@ -827,11 +821,6 @@ func enrollFederation(toSession *session, r io.Reader) 
error {
                                return err
                        }
                        deliveryService := deliveryServices.Response[0]
-                       if deliveryService.CDNName == nil || deliveryService.ID 
== nil || deliveryService.XMLID == nil {
-                               err = fmt.Errorf("Delivery Service '%s' as 
returned from Traffic Ops had null or undefined CDN name and/or ID", xmlID)
-                               log.Infoln(err)
-                               return err
-                       }
                        cdnName = *deliveryService.CDNName
                        cdnFederation = tc.CDNFederation{
                                CName: mapping.CName,
@@ -938,7 +927,7 @@ func createFederationResolversOfType(toSession *session, 
resolverTypeName tc.Fed
 
        var resolverIDs []int
        for _, ipAddress := range ipAddresses {
-               resolver := tc.FederationResolver{
+               resolver := tc.FederationResolverV5{
                        IPAddress: &ipAddress,
                        TypeID:    &typeID,
                }
@@ -958,7 +947,7 @@ func createFederationResolversOfType(toSession *session, 
resolverTypeName tc.Fed
 // enrollServerServerCapability takes a json file and creates a 
ServerServerCapability object using the TO API
 func enrollServerServerCapability(toSession *session, r io.Reader) error {
        dec := json.NewDecoder(r)
-       var s tc.ServerServerCapability
+       var s tc.ServerServerCapabilityV5
        err := dec.Decode(&s)
        if err != nil {
                err = fmt.Errorf("error decoding Server/Capability 
relationship: %s", err)
@@ -986,7 +975,7 @@ func enrollServerServerCapability(toSession *session, r 
io.Reader) error {
                log.Infoln(err.Error())
                return err
        }
-       s.ServerID = resp.Response[0].ID
+       s.ServerID = &resp.Response[0].ID
 
        alerts, _, err := toSession.CreateServerServerCapability(s, 
client.RequestOptions{})
        if err != nil {
diff --git a/infrastructure/cdn-in-a-box/enroller/server_template.json 
b/infrastructure/cdn-in-a-box/enroller/server_template.json
index f31a5c124e..97831b67f2 100644
--- a/infrastructure/cdn-in-a-box/enroller/server_template.json
+++ b/infrastructure/cdn-in-a-box/enroller/server_template.json
@@ -1,7 +1,7 @@
 {
   "hostName": "$MY_HOSTNAME",
   "domainName": "$MY_DOMAINNAME",
-  "cachegroup": "$MY_CACHE_GROUP",
+  "cacheGroup": "$MY_CACHE_GROUP",
   "interfaces": [
       {
         "ipAddresses": [],
@@ -11,10 +11,9 @@
       }
   ],
   "type": "$MY_TYPE",
-  "physLocation": "Apachecon North America 2018",
-  "profileNames": ["$MY_PROFILE"],
-  "cdnName": "$MY_CDN",
-  "updPending": false,
+  "physicalLocation": "Apachecon North America 2018",
+  "profiles": ["$MY_PROFILE"],
+  "cdn": "$MY_CDN",
   "status": "$MY_STATUS",
   "tcpPort": $MY_TCP_PORT,
   "httpsPort": $MY_HTTPS_PORT
diff --git a/infrastructure/cdn-in-a-box/traffic_ops/to-access.sh 
b/infrastructure/cdn-in-a-box/traffic_ops/to-access.sh
index f86d11f920..0abb08875e 100755
--- a/infrastructure/cdn-in-a-box/traffic_ops/to-access.sh
+++ b/infrastructure/cdn-in-a-box/traffic_ops/to-access.sh
@@ -281,7 +281,7 @@ to-enroll() {
 
        # replace env references in the file
        <"/server_template.json" envsubst | #first envsubst expands 
$MY_TCP_PORT and $MY_HTTPS_PORT so they are valid JSON
-               jq '.cdnName = "$MY_CDN"' |
+               jq '.cdn = "$MY_CDN"' |
                if [[ -n "$MY_IP" && -n "$MY_GATEWAY" ]]; then
                        jq '.interfaces[0].ipAddresses += [({} | .address = 
"$MY_IP" | .gateway = "$MY_GATEWAY" | .serviceAddress = true)]'
                else
diff --git 
a/infrastructure/cdn-in-a-box/traffic_ops_data/deliveryservices/010-demo1.json 
b/infrastructure/cdn-in-a-box/traffic_ops_data/deliveryservices/010-demo1.json
index 7c5f5cfbdc..c490f89d45 100644
--- 
a/infrastructure/cdn-in-a-box/traffic_ops_data/deliveryservices/010-demo1.json
+++ 
b/infrastructure/cdn-in-a-box/traffic_ops_data/deliveryservices/010-demo1.json
@@ -7,7 +7,7 @@
     "orgServerFqdn": "http://origin.infra.ciab.test";,
     "cdnName": "$CDN_NAME",
     "type": "HTTP",
-    "active": true,
+    "active": "ACTIVE",
     "dscp": 0,
     "geoLimit": 0,
     "geoProvider": 0,
diff --git 
a/infrastructure/cdn-in-a-box/traffic_ops_data/deliveryservices/020-demo2.json 
b/infrastructure/cdn-in-a-box/traffic_ops_data/deliveryservices/020-demo2.json
index 38f74e5730..4d73513d55 100644
--- 
a/infrastructure/cdn-in-a-box/traffic_ops_data/deliveryservices/020-demo2.json
+++ 
b/infrastructure/cdn-in-a-box/traffic_ops_data/deliveryservices/020-demo2.json
@@ -7,7 +7,7 @@
     "orgServerFqdn": "http://origin.infra.ciab.test";,
     "cdnName": "$CDN_NAME",
     "type": "DNS",
-    "active": true,
+    "active": "ACTIVE",
     "dscp": 0,
     "geoLimit": 0,
     "geoProvider": 0,
diff --git a/traffic_ops/testing/api/v5/server_capabilities_test.go 
b/traffic_ops/testing/api/v5/server_capabilities_test.go
index 36645126b1..1d4fd1d396 100644
--- a/traffic_ops/testing/api/v5/server_capabilities_test.go
+++ b/traffic_ops/testing/api/v5/server_capabilities_test.go
@@ -138,21 +138,21 @@ func TestServerCapabilities(t *testing.T) {
                                        switch method {
                                        case "GET":
                                                t.Run(name, func(t *testing.T) {
-                                                       resp, reqInf, err := 
testCase.ClientSession.GetServerCapabilitiesV5(testCase.RequestOpts)
+                                                       resp, reqInf, err := 
testCase.ClientSession.GetServerCapabilities(testCase.RequestOpts)
                                                        for _, check := range 
testCase.Expectations {
                                                                check(t, 
reqInf, resp.Response, resp.Alerts, err)
                                                        }
                                                })
                                        case "POST":
                                                t.Run(name, func(t *testing.T) {
-                                                       resp, reqInf, err := 
testCase.ClientSession.CreateServerCapabilityV5(testCase.RequestBody, 
testCase.RequestOpts)
+                                                       resp, reqInf, err := 
testCase.ClientSession.CreateServerCapability(testCase.RequestBody, 
testCase.RequestOpts)
                                                        for _, check := range 
testCase.Expectations {
                                                                check(t, 
reqInf, resp.Response, resp.Alerts, err)
                                                        }
                                                })
                                        case "PUT":
                                                t.Run(name, func(t *testing.T) {
-                                                       resp, reqInf, err := 
testCase.ClientSession.UpdateServerCapabilityV5(testCase.RequestOpts.QueryParameters["name"][0],
 testCase.RequestBody, testCase.RequestOpts)
+                                                       resp, reqInf, err := 
testCase.ClientSession.UpdateServerCapability(testCase.RequestOpts.QueryParameters["name"][0],
 testCase.RequestBody, testCase.RequestOpts)
                                                        for _, check := range 
testCase.Expectations {
                                                                check(t, 
reqInf, resp.Response, resp.Alerts, err)
                                                        }
@@ -200,13 +200,13 @@ func validateServerCapabilitiesSort() utils.CkReqFunc {
 
 func CreateTestServerCapabilities(t *testing.T) {
        for _, sc := range testData.ServerCapabilities {
-               resp, _, err := TOSession.CreateServerCapabilityV5(sc, 
client.RequestOptions{})
+               resp, _, err := TOSession.CreateServerCapability(sc, 
client.RequestOptions{})
                assert.RequireNoError(t, err, "Unexpected error creating Server 
Capability '%s': %v - alerts: %+v", sc.Name, err, resp.Alerts)
        }
 }
 
 func DeleteTestServerCapabilities(t *testing.T) {
-       serverCapabilities, _, err := 
TOSession.GetServerCapabilitiesV5(client.RequestOptions{})
+       serverCapabilities, _, err := 
TOSession.GetServerCapabilities(client.RequestOptions{})
        assert.NoError(t, err, "Cannot get Server Capabilities: %v - alerts: 
%+v", err, serverCapabilities.Alerts)
 
        for _, serverCapability := range serverCapabilities.Response {
@@ -215,7 +215,7 @@ func DeleteTestServerCapabilities(t *testing.T) {
                // Retrieve the Server Capability to see if it got deleted
                opts := client.NewRequestOptions()
                opts.QueryParameters.Set("name", serverCapability.Name)
-               getServerCapability, _, err := 
TOSession.GetServerCapabilitiesV5(opts)
+               getServerCapability, _, err := 
TOSession.GetServerCapabilities(opts)
                assert.NoError(t, err, "Error getting Server Capability '%s' 
after deletion: %v - alerts: %+v", serverCapability.Name, err, 
getServerCapability.Alerts)
                assert.Equal(t, 0, len(getServerCapability.Response), "Expected 
Server Capability '%s' to be deleted, but it was found in Traffic Ops", 
serverCapability.Name)
        }
diff --git a/traffic_ops/v5-client/servercapability.go 
b/traffic_ops/v5-client/servercapability.go
index 766dec468e..b955b5cfa1 100644
--- a/traffic_ops/v5-client/servercapability.go
+++ b/traffic_ops/v5-client/servercapability.go
@@ -26,22 +26,22 @@ import (
 // endpoint.
 const apiServerCapabilities = "/server_capabilities"
 
-// CreateServerCapabilityV5 creates the given Server Capability.
-func (to *Session) CreateServerCapabilityV5(sc tc.ServerCapabilityV5, opts 
RequestOptions) (tc.ServerCapabilityDetailResponseV5, toclientlib.ReqInf, 
error) {
+// CreateServerCapability creates the given Server Capability.
+func (to *Session) CreateServerCapability(sc tc.ServerCapabilityV5, opts 
RequestOptions) (tc.ServerCapabilityDetailResponseV5, toclientlib.ReqInf, 
error) {
        var scResp tc.ServerCapabilityDetailResponseV5
        reqInf, err := to.post(apiServerCapabilities, opts, sc, &scResp)
        return scResp, reqInf, err
 }
 
-// GetServerCapabilitiesV5 returns all the Server Capabilities in Traffic Ops.
-func (to *Session) GetServerCapabilitiesV5(opts RequestOptions) 
(tc.ServerCapabilitiesResponseV5, toclientlib.ReqInf, error) {
+// GetServerCapabilities returns all the Server Capabilities in Traffic Ops.
+func (to *Session) GetServerCapabilities(opts RequestOptions) 
(tc.ServerCapabilitiesResponseV5, toclientlib.ReqInf, error) {
        var data tc.ServerCapabilitiesResponseV5
        reqInf, err := to.get(apiServerCapabilities, opts, &data)
        return data, reqInf, err
 }
 
-// UpdateServerCapabilityV5 updates a Server Capability by name.
-func (to *Session) UpdateServerCapabilityV5(name string, sc 
tc.ServerCapabilityV5, opts RequestOptions) 
(tc.ServerCapabilityDetailResponseV5, toclientlib.ReqInf, error) {
+// UpdateServerCapability updates a Server Capability by name.
+func (to *Session) UpdateServerCapability(name string, sc 
tc.ServerCapabilityV5, opts RequestOptions) 
(tc.ServerCapabilityDetailResponseV5, toclientlib.ReqInf, error) {
        if opts.QueryParameters == nil {
                opts.QueryParameters = url.Values{}
        }

Reply via email to