github.com/akamai/AkamaiOPEN-edgegrid-golang@v1.2.2/api-endpoints-v2/resources.go (about)

     1  package apiendpoints
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/akamai/AkamaiOPEN-edgegrid-golang/client-v1"
     7  )
     8  
     9  type Resources []Resource
    10  
    11  type Resource struct {
    12  	APIResourceID           int     `json:"apiResourceId"`
    13  	APIResourceName         string  `json:"apiResourceName"`
    14  	ResourcePath            string  `json:"resourcePath"`
    15  	Description             string  `json:"description"`
    16  	LockVersion             int     `json:"lockVersion"`
    17  	APIResourceClonedFromID *int    `json:"apiResourceClonedFromId"`
    18  	APIResourceLogicID      int     `json:"apiResourceLogicId"`
    19  	CreatedBy               string  `json:"createdBy"`
    20  	CreateDate              string  `json:"createDate"`
    21  	UpdatedBy               string  `json:"updatedBy"`
    22  	UpdateDate              string  `json:"updateDate"`
    23  	APIResourceMethods      Methods `json:"apiResourceMethods"`
    24  }
    25  
    26  type ResourceBaseInfo struct {
    27  	APIResourceClonedFromID *int    `json:"apiResourceClonedFromId"`
    28  	APIResourceID           int     `json:"apiResourceId"`
    29  	APIResourceLogicID      int     `json:"apiResourceLogicId"`
    30  	APIResourceName         string  `json:"apiResourceName"`
    31  	CreateDate              string  `json:"createDate"`
    32  	CreatedBy               string  `json:"createdBy"`
    33  	Description             *string `json:"description"`
    34  	Link                    *string `json:"link"`
    35  	LockVersion             int     `json:"lockVersion"`
    36  	Private                 bool    `json:"private"`
    37  	ResourcePath            string  `json:"resourcePath"`
    38  	UpdateDate              string  `json:"updateDate"`
    39  	UpdatedBy               string  `json:"updatedBy"`
    40  }
    41  
    42  type ResourceSettings struct {
    43  	Path                 string        `json:"path"`
    44  	Methods              []MethodValue `json:"methods"`
    45  	InheritsFromEndpoint bool          `json:"inheritsFromEndpoint"`
    46  }
    47  
    48  func GetResources(endpointId int, version int) (*Resources, error) {
    49  	req, err := client.NewJSONRequest(
    50  		Config,
    51  		"GET",
    52  		fmt.Sprintf(
    53  			"/api-definitions/v2/endpoints/%d/versions/%d/resources",
    54  			endpointId,
    55  			version,
    56  		),
    57  		nil,
    58  	)
    59  
    60  	if err != nil {
    61  		return nil, err
    62  	}
    63  
    64  	res, err := client.Do(Config, req)
    65  
    66  	if client.IsError(res) {
    67  		return nil, client.NewAPIError(res)
    68  	}
    69  
    70  	rep := &Resources{}
    71  	if err = client.BodyJSON(res, rep); err != nil {
    72  		return nil, err
    73  	}
    74  
    75  	return rep, nil
    76  }