github.com/akamai/AkamaiOPEN-edgegrid-golang/v8@v8.1.0/pkg/cloudlets/v3/cloudlets.go (about) 1 // Package v3 provides access to the Akamai Cloudlets V3 APIs 2 package v3 3 4 import ( 5 "context" 6 "errors" 7 8 "github.com/akamai/AkamaiOPEN-edgegrid-golang/v8/pkg/session" 9 ) 10 11 var ( 12 // ErrStructValidation is returned when given struct validation failed. 13 ErrStructValidation = errors.New("struct validation") 14 ) 15 16 type ( 17 // Cloudlets is the api interface for cloudlets. 18 Cloudlets interface { 19 // ListCloudlets returns details of Cloudlets that you can create a shared policy for, including a Cloudlet name and Cloudlet type 20 // 21 // See: https://techdocs.akamai.com/cloudlets/reference/get-cloudlets 22 ListCloudlets(context.Context) ([]ListCloudletsItem, error) 23 24 // ListPolicies returns shared policies that are available within your group 25 // 26 // See: https://techdocs.akamai.com/cloudlets/reference/get-policies 27 ListPolicies(context.Context, ListPoliciesRequest) (*ListPoliciesResponse, error) 28 29 // CreatePolicy creates a shared policy for a specific Cloudlet type 30 // 31 // See: https://techdocs.akamai.com/cloudlets/reference/post-policy 32 CreatePolicy(context.Context, CreatePolicyRequest) (*Policy, error) 33 34 // DeletePolicy deletes an existing Cloudlets policy 35 // 36 // See: https://techdocs.akamai.com/cloudlets/reference/delete-policy 37 DeletePolicy(context.Context, DeletePolicyRequest) error 38 39 // GetPolicy returns information about a shared policy, including its activation status on the staging and production networks 40 // 41 // See: https://techdocs.akamai.com/cloudlets/reference/get-policy 42 GetPolicy(context.Context, GetPolicyRequest) (*Policy, error) 43 44 // UpdatePolicy updates an existing policy 45 // 46 // See: https://techdocs.akamai.com/cloudlets/reference/put-policy 47 UpdatePolicy(context.Context, UpdatePolicyRequest) (*Policy, error) 48 49 // ClonePolicy clones the staging, production, and last modified versions of a non-shared (API v2) or shared policy into a new shared policy 50 // 51 // See: https://techdocs.akamai.com/cloudlets/reference/post-policy-clone 52 ClonePolicy(context.Context, ClonePolicyRequest) (*Policy, error) 53 54 // ListActivePolicyProperties returns all active properties that are assigned to the policy 55 // 56 // See: https://techdocs.akamai.com/cloudlets/reference/get-policy-properties 57 ListActivePolicyProperties(context.Context, ListActivePolicyPropertiesRequest) (*ListActivePolicyPropertiesResponse, error) 58 59 // ListPolicyVersions lists policy versions by policyID. 60 // 61 // See: https://techdocs.akamai.com/cloudlets/reference/get-policy-versions 62 ListPolicyVersions(context.Context, ListPolicyVersionsRequest) (*ListPolicyVersions, error) 63 64 // GetPolicyVersion gets policy version by policyID and version. 65 // 66 // See: https://techdocs.akamai.com/cloudlets/reference/get-policy-version 67 GetPolicyVersion(context.Context, GetPolicyVersionRequest) (*PolicyVersion, error) 68 69 // CreatePolicyVersion creates policy version. 70 // 71 // See: https://techdocs.akamai.com/cloudlets/reference/post-policy-version 72 CreatePolicyVersion(context.Context, CreatePolicyVersionRequest) (*PolicyVersion, error) 73 74 // DeletePolicyVersion deletes policy version. 75 // 76 // See: https://techdocs.akamai.com/cloudlets/reference/delete-policy-version 77 DeletePolicyVersion(context.Context, DeletePolicyVersionRequest) error 78 79 // UpdatePolicyVersion updates policy version. 80 // 81 // See: https://techdocs.akamai.com/cloudlets/reference/put-policy-version 82 UpdatePolicyVersion(context.Context, UpdatePolicyVersionRequest) (*PolicyVersion, error) 83 84 // ListPolicyActivations returns the complete activation history for the selected policy in a reverse chronological order. 85 // 86 // See: https://techdocs.akamai.com/cloudlets/reference/get-policy-activations 87 ListPolicyActivations(context.Context, ListPolicyActivationsRequest) (*PolicyActivations, error) 88 89 // ActivatePolicy initiates the activation of the selected cloudlet policy version. 90 // 91 // See: https://techdocs.akamai.com/cloudlets/reference/post-policy-activations 92 ActivatePolicy(context.Context, ActivatePolicyRequest) (*PolicyActivation, error) 93 94 // DeactivatePolicy initiates the deactivation of the selected cloudlet policy version. 95 // 96 // See: https://techdocs.akamai.com/cloudlets/reference/post-policy-activations 97 DeactivatePolicy(context.Context, DeactivatePolicyRequest) (*PolicyActivation, error) 98 99 // GetPolicyActivation activates the selected cloudlet policy version. 100 // 101 // See: https://techdocs.akamai.com/cloudlets/reference/get-policy-activation 102 GetPolicyActivation(context.Context, GetPolicyActivationRequest) (*PolicyActivation, error) 103 } 104 105 cloudlets struct { 106 session.Session 107 } 108 109 // Option defines a Cloudlets option. 110 Option func(*cloudlets) 111 112 // ClientFunc is a Cloudlets client new method, this can be used for mocking. 113 ClientFunc func(sess session.Session, opts ...Option) Cloudlets 114 ) 115 116 // Client returns a new cloudlets Client instance with the specified controller. 117 func Client(sess session.Session, opts ...Option) Cloudlets { 118 c := &cloudlets{ 119 Session: sess, 120 } 121 122 for _, opt := range opts { 123 opt(c) 124 } 125 return c 126 }