dnscontrol/pkg/cloudflare-go/total_tls.go
Tom Limoncelli 7fd6a74e0c
CLOUDFLAREAPI: CF_REDIRECT/CF_TEMP_REDIRECT should dtrt using Single Redirects (#3002)
Co-authored-by: Josh Zhang <jzhang1@stackoverflow.com>
2024-06-18 17:38:50 -04:00

65 lines
1.6 KiB
Go

package cloudflare
import (
"context"
"fmt"
"net/http"
"github.com/goccy/go-json"
)
type TotalTLS struct {
Enabled *bool `json:"enabled,omitempty"`
CertificateAuthority string `json:"certificate_authority,omitempty"`
ValidityDays int `json:"validity_days,omitempty"`
}
type TotalTLSResponse struct {
Response
Result TotalTLS `json:"result"`
}
// GetTotalTLS Get Total TLS Settings for a Zone.
//
// API Reference: https://api.cloudflare.com/#total-tls-total-tls-settings-details
func (api *API) GetTotalTLS(ctx context.Context, rc *ResourceContainer) (TotalTLS, error) {
if rc.Identifier == "" {
return TotalTLS{}, ErrMissingZoneID
}
uri := fmt.Sprintf("/zones/%s/acm/total_tls", rc.Identifier)
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
if err != nil {
return TotalTLS{}, err
}
var r TotalTLSResponse
err = json.Unmarshal(res, &r)
if err != nil {
return TotalTLS{}, err
}
return r.Result, nil
}
// SetTotalTLS Set Total TLS Settings or disable the feature for a Zone.
//
// API Reference: https://api.cloudflare.com/#total-tls-enable-or-disable-total-tls
func (api *API) SetTotalTLS(ctx context.Context, rc *ResourceContainer, params TotalTLS) (TotalTLS, error) {
if rc.Identifier == "" {
return TotalTLS{}, ErrMissingZoneID
}
uri := fmt.Sprintf("/zones/%s/acm/total_tls", rc.Identifier)
res, err := api.makeRequestContext(ctx, http.MethodPost, uri, params)
if err != nil {
return TotalTLS{}, err
}
var r TotalTLSResponse
err = json.Unmarshal(res, &r)
if err != nil {
return TotalTLS{}, err
}
return r.Result, nil
}