3
3
package ssl
4
4
5
5
import (
6
+ "context"
7
+ "errors"
8
+ "fmt"
9
+ "net/http"
10
+ "time"
11
+
12
+ "github.com/cloudflare/cloudflare-go/v4/internal/apijson"
13
+ "github.com/cloudflare/cloudflare-go/v4/internal/requestconfig"
6
14
"github.com/cloudflare/cloudflare-go/v4/option"
15
+ "github.com/cloudflare/cloudflare-go/v4/shared"
7
16
)
8
17
9
18
// RecommendationService contains methods and other services that help with
@@ -24,3 +33,105 @@ func NewRecommendationService(opts ...option.RequestOption) (r *RecommendationSe
24
33
r .Options = opts
25
34
return
26
35
}
36
+
37
+ // Retrieve the SSL/TLS Recommender's recommendation for a zone.
38
+ func (r * RecommendationService ) Get (ctx context.Context , zoneIdentifier string , opts ... option.RequestOption ) (res * RecommendationGetResponse , err error ) {
39
+ var env RecommendationGetResponseEnvelope
40
+ opts = append (r .Options [:], opts ... )
41
+ if zoneIdentifier == "" {
42
+ err = errors .New ("missing required zone_identifier parameter" )
43
+ return
44
+ }
45
+ path := fmt .Sprintf ("zones/%s/ssl/recommendation" , zoneIdentifier )
46
+ err = requestconfig .ExecuteNewRequest (ctx , http .MethodGet , path , nil , & env , opts ... )
47
+ if err != nil {
48
+ return
49
+ }
50
+ res = & env .Result
51
+ return
52
+ }
53
+
54
+ type RecommendationGetResponse struct {
55
+ // Identifier of a recommedation result.
56
+ ID string `json:"id"`
57
+ ModifiedOn time.Time `json:"modified_on" format:"date-time"`
58
+ Value RecommendationGetResponseValue `json:"value"`
59
+ JSON recommendationGetResponseJSON `json:"-"`
60
+ }
61
+
62
+ // recommendationGetResponseJSON contains the JSON metadata for the struct
63
+ // [RecommendationGetResponse]
64
+ type recommendationGetResponseJSON struct {
65
+ ID apijson.Field
66
+ ModifiedOn apijson.Field
67
+ Value apijson.Field
68
+ raw string
69
+ ExtraFields map [string ]apijson.Field
70
+ }
71
+
72
+ func (r * RecommendationGetResponse ) UnmarshalJSON (data []byte ) (err error ) {
73
+ return apijson .UnmarshalRoot (data , r )
74
+ }
75
+
76
+ func (r recommendationGetResponseJSON ) RawJSON () string {
77
+ return r .raw
78
+ }
79
+
80
+ type RecommendationGetResponseValue string
81
+
82
+ const (
83
+ RecommendationGetResponseValueFlexible RecommendationGetResponseValue = "flexible"
84
+ RecommendationGetResponseValueFull RecommendationGetResponseValue = "full"
85
+ RecommendationGetResponseValueStrict RecommendationGetResponseValue = "strict"
86
+ )
87
+
88
+ func (r RecommendationGetResponseValue ) IsKnown () bool {
89
+ switch r {
90
+ case RecommendationGetResponseValueFlexible , RecommendationGetResponseValueFull , RecommendationGetResponseValueStrict :
91
+ return true
92
+ }
93
+ return false
94
+ }
95
+
96
+ type RecommendationGetResponseEnvelope struct {
97
+ Errors []shared.ResponseInfo `json:"errors,required"`
98
+ Messages []shared.ResponseInfo `json:"messages,required"`
99
+ Result RecommendationGetResponse `json:"result,required,nullable"`
100
+ // Whether the API call was successful
101
+ Success RecommendationGetResponseEnvelopeSuccess `json:"success,required"`
102
+ JSON recommendationGetResponseEnvelopeJSON `json:"-"`
103
+ }
104
+
105
+ // recommendationGetResponseEnvelopeJSON contains the JSON metadata for the struct
106
+ // [RecommendationGetResponseEnvelope]
107
+ type recommendationGetResponseEnvelopeJSON struct {
108
+ Errors apijson.Field
109
+ Messages apijson.Field
110
+ Result apijson.Field
111
+ Success apijson.Field
112
+ raw string
113
+ ExtraFields map [string ]apijson.Field
114
+ }
115
+
116
+ func (r * RecommendationGetResponseEnvelope ) UnmarshalJSON (data []byte ) (err error ) {
117
+ return apijson .UnmarshalRoot (data , r )
118
+ }
119
+
120
+ func (r recommendationGetResponseEnvelopeJSON ) RawJSON () string {
121
+ return r .raw
122
+ }
123
+
124
+ // Whether the API call was successful
125
+ type RecommendationGetResponseEnvelopeSuccess bool
126
+
127
+ const (
128
+ RecommendationGetResponseEnvelopeSuccessTrue RecommendationGetResponseEnvelopeSuccess = true
129
+ )
130
+
131
+ func (r RecommendationGetResponseEnvelopeSuccess ) IsKnown () bool {
132
+ switch r {
133
+ case RecommendationGetResponseEnvelopeSuccessTrue :
134
+ return true
135
+ }
136
+ return false
137
+ }
0 commit comments