| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package cloudflare
- import (
- "encoding/json"
- "github.com/pkg/errors"
- )
- // UniversalSSLSetting represents a universal ssl setting's properties.
- type UniversalSSLSetting struct {
- Enabled bool `json:"enabled"`
- }
- type universalSSLSettingResponse struct {
- Response
- Result UniversalSSLSetting `json:"result"`
- }
- // UniversalSSLVerificationDetails represents a universal ssl verifcation's properties.
- type UniversalSSLVerificationDetails struct {
- CertificateStatus string `json:"certificate_status"`
- VerificationType string `json:"verification_type"`
- ValidationMethod string `json:"validation_method"`
- CertPackUUID string `json:"cert_pack_uuid"`
- VerificationStatus bool `json:"verification_status"`
- BrandCheck bool `json:"brand_check"`
- VerificationInfo UniversalSSLVerificationInfo `json:"verification_info"`
- }
- // UniversalSSLVerificationInfo represents DCV record.
- type UniversalSSLVerificationInfo struct {
- RecordName string `json:"record_name"`
- RecordTarget string `json:"record_target"`
- }
- type universalSSLVerificationResponse struct {
- Response
- Result []UniversalSSLVerificationDetails `json:"result"`
- }
- // UniversalSSLSettingDetails returns the details for a universal ssl setting
- //
- // API reference: https://api.cloudflare.com/#universal-ssl-settings-for-a-zone-universal-ssl-settings-details
- func (api *API) UniversalSSLSettingDetails(zoneID string) (UniversalSSLSetting, error) {
- uri := "/zones/" + zoneID + "/ssl/universal/settings"
- res, err := api.makeRequest("GET", uri, nil)
- if err != nil {
- return UniversalSSLSetting{}, errors.Wrap(err, errMakeRequestError)
- }
- var r universalSSLSettingResponse
- if err := json.Unmarshal(res, &r); err != nil {
- return UniversalSSLSetting{}, errors.Wrap(err, errUnmarshalError)
- }
- return r.Result, nil
- }
- // EditUniversalSSLSetting edits the uniersal ssl setting for a zone
- //
- // API reference: https://api.cloudflare.com/#universal-ssl-settings-for-a-zone-edit-universal-ssl-settings
- func (api *API) EditUniversalSSLSetting(zoneID string, setting UniversalSSLSetting) (UniversalSSLSetting, error) {
- uri := "/zones/" + zoneID + "/ssl/universal/settings"
- res, err := api.makeRequest("PATCH", uri, setting)
- if err != nil {
- return UniversalSSLSetting{}, errors.Wrap(err, errMakeRequestError)
- }
- var r universalSSLSettingResponse
- if err := json.Unmarshal(res, &r); err != nil {
- return UniversalSSLSetting{}, errors.Wrap(err, errUnmarshalError)
- }
- return r.Result, nil
- }
- // UniversalSSLVerificationDetails returns the details for a universal ssl verifcation
- //
- // API reference: https://api.cloudflare.com/#ssl-verification-ssl-verification-details
- func (api *API) UniversalSSLVerificationDetails(zoneID string) ([]UniversalSSLVerificationDetails, error) {
- uri := "/zones/" + zoneID + "/ssl/verification"
- res, err := api.makeRequest("GET", uri, nil)
- if err != nil {
- return []UniversalSSLVerificationDetails{}, errors.Wrap(err, errMakeRequestError)
- }
- var r universalSSLVerificationResponse
- if err := json.Unmarshal(res, &r); err != nil {
- return []UniversalSSLVerificationDetails{}, errors.Wrap(err, errUnmarshalError)
- }
- return r.Result, nil
- }
|