{
  "basePath": "",
  "baseUrl": "https://acmedns.googleapis.com/",
  "batchPath": "batch",
  "canonicalName": "ACME DNS",
  "description": "Google Domains ACME DNS API that allows users to complete ACME DNS-01 challenges for a domain.",
  "discoveryVersion": "v1",
  "documentationLink": "https://developers.google.com/domains/acme-dns/",
  "fullyEncodeReservedExpansion": true,
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "id": "acmedns:v1",
  "kind": "discovery#restDescription",
  "mtlsRootUrl": "https://acmedns.mtls.googleapis.com/",
  "name": "acmedns",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "parameters": {
    "$.xgafv": {
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "description": "OAuth access token.",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "default": "json",
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean"
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    }
  },
  "protocol": "rest",
  "resources": {
    "acmeChallengeSets": {
      "methods": {
        "get": {
          "description": "Gets the ACME challenge set for a given domain name. Domain names must be provided in Punycode.",
          "flatPath": "v1/acmeChallengeSets/{rootDomain}",
          "httpMethod": "GET",
          "id": "acmedns.acmeChallengeSets.get",
          "parameterOrder": [
            "rootDomain"
          ],
          "parameters": {
            "rootDomain": {
              "description": "Required. SLD + TLD domain name to list challenges. For example, this would be \"google.com\" for any FQDN under \"google.com\". That includes challenges for \"subdomain.google.com\". This MAY be Unicode or Punycode.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/acmeChallengeSets/{rootDomain}",
          "response": {
            "$ref": "AcmeChallengeSet"
          }
        },
        "rotateChallenges": {
          "description": "Rotate the ACME challenges for a given domain name. By default, removes any challenges that are older than 30 days. Domain names must be provided in Punycode.",
          "flatPath": "v1/acmeChallengeSets/{rootDomain}:rotateChallenges",
          "httpMethod": "POST",
          "id": "acmedns.acmeChallengeSets.rotateChallenges",
          "parameterOrder": [
            "rootDomain"
          ],
          "parameters": {
            "rootDomain": {
              "description": "Required. SLD + TLD domain name to update records for. For example, this would be \"google.com\" for any FQDN under \"google.com\". That includes challenges for \"subdomain.google.com\". This MAY be Unicode or Punycode.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/acmeChallengeSets/{rootDomain}:rotateChallenges",
          "request": {
            "$ref": "RotateChallengesRequest"
          },
          "response": {
            "$ref": "AcmeChallengeSet"
          }
        }
      }
    }
  },
  "revision": "20230812",
  "rootUrl": "https://acmedns.googleapis.com/",
  "schemas": {
    "AcmeChallengeSet": {
      "description": "The up-to-date ACME challenge set on a domain for an RPC. This contains all of the ACME TXT records that exist on the domain.",
      "id": "AcmeChallengeSet",
      "properties": {
        "record": {
          "description": "The ACME challenges on the requested domain represented as individual TXT records.",
          "items": {
            "$ref": "AcmeTxtRecord"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AcmeTxtRecord": {
      "description": "The TXT record message that represents an ACME DNS-01 challenge.",
      "id": "AcmeTxtRecord",
      "properties": {
        "digest": {
          "description": "Holds the ACME challenge data put in the TXT record. This will be checked to be a valid TXT record data entry.",
          "type": "string"
        },
        "fqdn": {
          "description": "The domain/subdomain for the record. In a request, this MAY be Unicode or Punycode. In a response, this will be in Unicode. The fqdn MUST contain the root_domain field on the request.",
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. The time when this record was last updated. This will be in UTC time.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "RotateChallengesRequest": {
      "description": "The request message for the RotateChallenges RPC. Requires an access token, a root domain, and either records_to_add or records_to_remove to be populated. Records may be set for multiple subdomains at once to support SAN requests for multiple subdomains in a single domain. By default, ACME TXT record challenges that are older than 30 days will be removed. Set `keep_expired_records` to false if this behavior is undesired. There is a record maximum of 100 records per domain including expired records. Any request sent that would exceed this maximum will result in a FAILED_PRECONDITION error. NEXT ID: 6",
      "id": "RotateChallengesRequest",
      "properties": {
        "accessToken": {
          "description": "Required. ACME DNS access token. This is a base64 token secret that is procured from the Google Domains website. It authorizes ACME TXT record updates for a domain.",
          "format": "byte",
          "type": "string"
        },
        "keepExpiredRecords": {
          "description": "Keep records older than 30 days that were used for previous requests.",
          "type": "boolean"
        },
        "recordsToAdd": {
          "description": "ACME TXT record challenges to add. Supports multiple challenges on the same FQDN.",
          "items": {
            "$ref": "AcmeTxtRecord"
          },
          "type": "array"
        },
        "recordsToRemove": {
          "description": "ACME TXT record challenges to remove.",
          "items": {
            "$ref": "AcmeTxtRecord"
          },
          "type": "array"
        }
      },
      "type": "object"
    }
  },
  "servicePath": "",
  "title": "ACME DNS API",
  "version": "v1",
  "version_module": true
}