{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/appengine.admin": {
          "description": "View and manage your applications deployed on Google App Engine"
        },
        "https://www.googleapis.com/auth/cloud-platform.read-only": {
          "description": "View your data across Google Cloud services and see the email address of your Google Account"
        },
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "title": "App Engine Admin API",
  "rootUrl": "https://appengine.googleapis.com/",
  "protocol": "rest",
  "discoveryVersion": "v1",
  "ownerDomain": "google.com",
  "fullyEncodeReservedExpansion": true,
  "basePath": "",
  "ownerName": "Google",
  "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/",
  "schemas": {
    "AuthorizedCertificate": {
      "id": "AuthorizedCertificate",
      "description": "An SSL certificate that a user has been authorized to administer. A user is authorized to administer any certificate that applies to one of their authorized domains.",
      "type": "object",
      "properties": {
        "expireTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "The time when this certificate expires. To update the renewal time on this certificate, upload an SSL certificate with a different expiration time using AuthorizedCertificates.UpdateAuthorizedCertificate.@OutputOnly"
        },
        "domainMappingsCount": {
          "format": "int32",
          "description": "Aggregate count of the domain mappings with this certificate mapped. This count includes domain mappings on applications for which the user does not have VIEWER permissions.Only returned by GET or LIST requests when specifically requested by the view=FULL_CERTIFICATE option.@OutputOnly",
          "type": "integer"
        },
        "managedCertificate": {
          "description": "Only applicable if this certificate is managed by App Engine. Managed certificates are tied to the lifecycle of a DomainMapping and cannot be updated or deleted via the AuthorizedCertificates API. If this certificate is manually administered by the user, this field will be empty.@OutputOnly",
          "$ref": "ManagedCertificate"
        },
        "visibleDomainMappings": {
          "type": "array",
          "description": "Output only. The full paths to user visible Domain Mapping resources that have this certificate mapped. Example: apps/myapp/domainMappings/example.com.This may not represent the full list of mapped domain mappings if the user does not have VIEWER permissions on all of the applications that have this certificate mapped. See domain_mappings_count for a complete count.Only returned by GET or LIST requests when specifically requested by the view=FULL_CERTIFICATE option.@OutputOnly",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "id": {
          "description": "Output only. Relative name of the certificate. This is a unique value autogenerated on AuthorizedCertificate resource creation. Example: 12345.@OutputOnly",
          "type": "string",
          "readOnly": true
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Full path to the AuthorizedCertificate resource in the API. Example: apps/myapp/authorizedCertificates/12345.@OutputOnly"
        },
        "displayName": {
          "type": "string",
          "description": "The user-specified display name of the certificate. This is not guaranteed to be unique. Example: My Certificate."
        },
        "certificateRawData": {
          "description": "The SSL certificate serving the AuthorizedCertificate resource. This must be obtained independently from a certificate authority.",
          "$ref": "CertificateRawData"
        },
        "domainNames": {
          "type": "array",
          "description": "Output only. Topmost applicable domains of this certificate. This certificate applies to these domains and their subdomains. Example: example.com.@OutputOnly",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAppengineV1betaLocationMetadata": {
      "type": "object",
      "properties": {
        "standardEnvironmentAvailable": {
          "description": "App Engine standard environment is available in the given location.@OutputOnly",
          "type": "boolean"
        },
        "flexibleEnvironmentAvailable": {
          "type": "boolean",
          "description": "App Engine flexible environment is available in the given location.@OutputOnly"
        },
        "searchApiAvailable": {
          "description": "Output only. Search API (https://cloud.google.com/appengine/docs/standard/python/search) is available in the given location.",
          "type": "boolean",
          "readOnly": true
        }
      },
      "id": "GoogleAppengineV1betaLocationMetadata",
      "description": "Metadata for the given google.cloud.location.Location."
    },
    "ListOperationsResponse": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "The standard List next-page token."
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Unordered list. Unreachable resources. Populated when the request sets ListOperationsRequest.return_partial_success and reads across collections. For example, when attempting to list all resources across all supported locations.",
          "type": "array"
        },
        "operations": {
          "type": "array",
          "description": "A list of operations that matches the specified filter in the request.",
          "items": {
            "$ref": "Operation"
          }
        }
      },
      "id": "ListOperationsResponse",
      "description": "The response message for Operations.ListOperations."
    },
    "CreateVersionMetadataV1Alpha": {
      "type": "object",
      "properties": {
        "cloudBuildId": {
          "description": "The Cloud Build ID if one was created as part of the version create. @OutputOnly",
          "type": "string"
        }
      },
      "id": "CreateVersionMetadataV1Alpha",
      "description": "Metadata for the given google.longrunning.Operation during a google.appengine.v1alpha.CreateVersionRequest."
    },
    "CreateVersionMetadataV1": {
      "type": "object",
      "properties": {
        "cloudBuildId": {
          "description": "The Cloud Build ID if one was created as part of the version create. @OutputOnly",
          "type": "string"
        }
      },
      "id": "CreateVersionMetadataV1",
      "description": "Metadata for the given google.longrunning.Operation during a google.appengine.v1.CreateVersionRequest."
    },
    "CreateVersionMetadataV1Beta": {
      "id": "CreateVersionMetadataV1Beta",
      "description": "Metadata for the given google.longrunning.Operation during a google.appengine.v1beta.CreateVersionRequest.",
      "type": "object",
      "properties": {
        "cloudBuildId": {
          "description": "The Cloud Build ID if one was created as part of the version create. @OutputOnly",
          "type": "string"
        }
      }
    },
    "CertificateRawData": {
      "id": "CertificateRawData",
      "description": "An SSL certificate obtained from a certificate authority.",
      "type": "object",
      "properties": {
        "publicCertificate": {
          "type": "string",
          "description": "PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- "
        },
        "privateKey": {
          "type": "string",
          "description": "Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY----- @InputOnly"
        }
      }
    },
    "Operation": {
      "type": "object",
      "properties": {
        "metadata": {
          "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "type": "object"
        },
        "name": {
          "type": "string",
          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}."
        },
        "response": {
          "description": "The normal, successful response of the operation. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.",
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "type": "object"
        },
        "done": {
          "description": "If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.",
          "type": "boolean"
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "Status"
        }
      },
      "id": "Operation",
      "description": "This resource represents a long-running operation that is the result of a network API call."
    },
    "DomainMapping": {
      "type": "object",
      "properties": {
        "id": {
          "description": "Relative name of the domain serving the application. Example: example.com.",
          "type": "string"
        },
        "resourceRecords": {
          "description": "Output only. The resource records required to configure this domain mapping. These records must be added to the domain's DNS configuration in order to serve the application via this domain mapping.@OutputOnly",
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "ResourceRecord"
          }
        },
        "name": {
          "description": "Output only. Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.@OutputOnly",
          "type": "string",
          "readOnly": true
        },
        "sslSettings": {
          "$ref": "SslSettings",
          "description": "SSL configuration for this domain. If unconfigured, this domain will not serve with SSL."
        }
      },
      "id": "DomainMapping",
      "description": "A domain serving an App Engine application."
    },
    "Status": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string",
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client."
        },
        "details": {
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "type": "array",
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use."
        },
        "code": {
          "format": "int32",
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer"
        }
      },
      "id": "Status",
      "description": "The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors)."
    },
    "ContainerState": {
      "type": "object",
      "properties": {
        "state": {
          "description": "The current state of the container. This state is the culmination of all of the opinions from external systems that CCFE knows about of the container.",
          "type": "string",
          "enum": [
            "UNKNOWN_STATE",
            "ON",
            "OFF",
            "DELETED"
          ],
          "enumDescriptions": [
            "A container should never be in an unknown state. Receipt of a container with this state is an error.",
            "CCFE considers the container to be serving or transitioning into serving.",
            "CCFE considers the container to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a container to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the container is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.",
            "This state indicates that the container has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached."
          ]
        },
        "previousReasons": {
          "$ref": "Reasons",
          "description": "The previous and current reasons for a container state will be sent for a container event. CLHs that need to know the signal that caused the container event to trigger (edges) as opposed to just knowing the state can act upon differences in the previous and current reasons.Reasons will be provided for every system: service management, data governance, abuse, and billing.If this is a CCFE-triggered event used for reconciliation then the current reasons will be set to their *_CONTROL_PLANE_SYNC state. The previous reasons will contain the last known set of non-unknown non-control_plane_sync reasons for the state."
        },
        "currentReasons": {
          "$ref": "Reasons"
        }
      },
      "id": "ContainerState",
      "description": "ContainerState contains the externally-visible container state that is used to communicate the state and reasoning for that state to the CLH. This data is not persisted by CCFE, but is instead derived from CCFE's internal representation of the container state."
    },
    "ManagedCertificate": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "description": "Status of certificate management. Refers to the most recent certificate acquisition or renewal attempt.@OutputOnly",
          "enumDescriptions": [
            "",
            "Certificate was successfully obtained and inserted into the serving system.",
            "Certificate is under active attempts to acquire or renew.",
            "Most recent renewal failed due to a system failure and will be retried. System failure is likely transient, and subsequent renewal attempts may succeed. The last successfully provisioned certificate may still be serving.",
            "Most recent renewal failed due to an invalid DNS setup and will be retried. Renewal attempts will continue to fail until the certificate domain's DNS configuration is fixed. The last successfully provisioned certificate may still be serving.",
            "All renewal attempts have been exhausted. Most recent renewal failed due to an invalid DNS setup and will not be retried. The last successfully provisioned certificate may still be serving.",
            "Most recent renewal failed due to an explicit CAA record that does not include one of the in-use CAs (Google CA and Let's Encrypt). Renewals will continue to fail until the CAA is reconfigured. The last successfully provisioned certificate may still be serving.",
            "Most recent renewal failed due to a CAA retrieval failure. This means that the domain's DNS provider does not properly handle CAA records, failing requests for CAA records when no CAA records are defined. Renewals will continue to fail until the DNS provider is changed or a CAA record is added for the given domain. The last successfully provisioned certificate may still be serving."
          ],
          "enum": [
            "UNSPECIFIED_STATUS",
            "OK",
            "PENDING",
            "FAILED_RETRYING_INTERNAL",
            "FAILED_RETRYING_NOT_VISIBLE",
            "FAILED_PERMANENTLY_NOT_VISIBLE",
            "FAILED_RETRYING_CAA_FORBIDDEN",
            "FAILED_RETRYING_CAA_CHECKING"
          ]
        },
        "lastRenewalTime": {
          "format": "google-datetime",
          "description": "Time at which the certificate was last renewed. The renewal process is fully managed. Certificate renewal will automatically occur before the certificate expires. Renewal errors can be tracked via ManagementStatus.@OutputOnly",
          "type": "string"
        }
      },
      "id": "ManagedCertificate",
      "description": "A certificate managed by App Engine."
    },
    "ResourceEvent": {
      "id": "ResourceEvent",
      "description": "The request that is passed to CLH during per-resource events. The request will be sent with update semantics in all cases except for data governance purge events. These events will be sent with delete semantics and the CLH is expected to delete the resource receiving this event.",
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the resource for which this event is. required",
          "type": "string"
        },
        "eventId": {
          "description": "The unique ID for this per-resource event. CLHs can use this value to dedup repeated calls. required",
          "type": "string"
        },
        "state": {
          "description": "The state of the project that led to this event.",
          "$ref": "ContainerState"
        }
      }
    },
    "ListAuthorizedDomainsResponse": {
      "id": "ListAuthorizedDomainsResponse",
      "description": "Response message for AuthorizedDomains.ListAuthorizedDomains.",
      "type": "object",
      "properties": {
        "domains": {
          "type": "array",
          "description": "The authorized domains belonging to the user.",
          "items": {
            "$ref": "AuthorizedDomain"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "Continuation token for fetching the next page of results."
        }
      }
    },
    "ListLocationsResponse": {
      "type": "object",
      "properties": {
        "locations": {
          "items": {
            "$ref": "Location"
          },
          "type": "array",
          "description": "A list of locations that matches the specified filter in the request."
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      },
      "id": "ListLocationsResponse",
      "description": "The response message for Locations.ListLocations."
    },
    "AuthorizedDomain": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Full path to the AuthorizedDomain resource in the API. Example: apps/myapp/authorizedDomains/example.com.@OutputOnly",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Fully qualified domain name of the domain authorized for use. Example: example.com."
        }
      },
      "id": "AuthorizedDomain",
      "description": "A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Search Console (https://search.google.com/search-console/welcome)."
    },
    "ProjectsMetadata": {
      "type": "object",
      "properties": {
        "consumerProjectNumber": {
          "type": "string",
          "description": "The consumer project number.",
          "format": "int64"
        },
        "tenantProjectId": {
          "description": "The tenant project id.",
          "type": "string"
        },
        "tenantProjectNumber": {
          "type": "string",
          "description": "The tenant project number.",
          "format": "int64"
        },
        "gceTag": {
          "items": {
            "$ref": "GceTag"
          },
          "type": "array",
          "description": "The GCE tags associated with the consumer project and those inherited due to their ancestry, if any. Not supported by CCFE."
        },
        "isGceProjectDeprovisioning": {
          "type": "boolean",
          "description": "DEPRECATED: Indicates whether the GCE project is in the DEPROVISIONING state. This field is a temporary workaround (see b/475310865) to allow GCE extensions to bypass certain checks during deprovisioning. It will be replaced by a permanent solution in the future.",
          "deprecated": true
        },
        "p4ServiceAccount": {
          "description": "The service account authorized to operate on the consumer project. Note: CCFE only propagates P4SA with default tag to CLH.",
          "type": "string"
        },
        "consumerProjectId": {
          "type": "string",
          "description": "The consumer project id."
        },
        "consumerProjectState": {
          "enumDescriptions": [
            "A container should never be in an unknown state. Receipt of a container with this state is an error.",
            "CCFE considers the container to be serving or transitioning into serving.",
            "CCFE considers the container to be in an OFF state. This could occur due to various factors. The state could be triggered by Google-internal audits (ex. abuse suspension, billing closed) or cleanups trigged by compliance systems (ex. data governance hide). User-initiated events such as service management deactivation trigger a container to an OFF state.CLHs might choose to do nothing in this case or to turn off costly resources. CLHs need to consider the customer experience if an ON/OFF/ON sequence of state transitions occurs vs. the cost of deleting resources, keeping metadata about resources, or even keeping resources live for a period of time.CCFE will not send any new customer requests to the CLH when the container is in an OFF state. However, CCFE will allow all previous customer requests relayed to CLH to complete.",
            "This state indicates that the container has been (or is being) completely removed. This is often due to a data governance purge request and therefore resources should be deleted when this state is reached."
          ],
          "enum": [
            "UNKNOWN_STATE",
            "ON",
            "OFF",
            "DELETED"
          ],
          "type": "string",
          "description": "The CCFE state of the consumer project. It is the same state that is communicated to the CLH during project events. Notice that this field is not set in the DB, it is only set in this proto when communicated to CLH in the side channel."
        },
        "producerProjectNumber": {
          "format": "int64",
          "type": "string",
          "description": "The producer project number."
        },
        "producerProjectId": {
          "description": "The producer project id.",
          "type": "string"
        }
      },
      "id": "ProjectsMetadata",
      "description": "ProjectsMetadata is the metadata CCFE stores about the all the relevant projects (tenant, consumer, producer)."
    },
    "SslSettings": {
      "id": "SslSettings",
      "description": "SSL configuration for a DomainMapping resource.",
      "type": "object",
      "properties": {
        "certificateId": {
          "description": "ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support.By default, a managed certificate is automatically created for every domain mapping. To omit SSL support or to configure SSL manually, specify no_managed_certificate on a CREATE or UPDATE request. You must be authorized to administer the AuthorizedCertificate resource to manually map it to a DomainMapping resource. Example: 12345.",
          "type": "string"
        },
        "isManagedCertificate": {
          "type": "boolean",
          "description": "Output only. Whether the mapped certificate is an App Engine managed certificate. Managed certificates are created by default with a domain mapping. To opt out, specify no_managed_certificate on a CREATE or UPDATE request.@OutputOnly",
          "readOnly": true
        }
      }
    },
    "OperationMetadataV1Beta": {
      "type": "object",
      "properties": {
        "createVersionMetadata": {
          "$ref": "CreateVersionMetadataV1Beta"
        },
        "warning": {
          "items": {
            "type": "string"
          },
          "description": "Durable messages that persist on every operation poll. @OutputOnly",
          "type": "array"
        },
        "endTime": {
          "type": "string",
          "description": "Time that this operation completed.@OutputOnly",
          "format": "google-datetime"
        },
        "target": {
          "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly",
          "type": "string"
        },
        "insertTime": {
          "type": "string",
          "description": "Time that this operation was created.@OutputOnly",
          "format": "google-datetime"
        },
        "user": {
          "type": "string",
          "description": "User who requested this operation.@OutputOnly"
        },
        "ephemeralMessage": {
          "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly",
          "type": "string"
        },
        "method": {
          "description": "API method that initiated this operation. Example: google.appengine.v1beta.Versions.CreateVersion.@OutputOnly",
          "type": "string"
        }
      },
      "id": "OperationMetadataV1Beta",
      "description": "Metadata for the given google.longrunning.Operation."
    },
    "Empty": {
      "type": "object",
      "properties": {},
      "id": "Empty",
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } "
    },
    "OperationMetadataV1": {
      "id": "OperationMetadataV1",
      "description": "Metadata for the given google.longrunning.Operation.",
      "type": "object",
      "properties": {
        "warning": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Durable messages that persist on every operation poll. @OutputOnly"
        },
        "createVersionMetadata": {
          "$ref": "CreateVersionMetadataV1"
        },
        "insertTime": {
          "type": "string",
          "description": "Time that this operation was created.@OutputOnly",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Time that this operation completed.@OutputOnly",
          "type": "string",
          "format": "google-datetime"
        },
        "target": {
          "type": "string",
          "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly"
        },
        "method": {
          "description": "API method that initiated this operation. Example: google.appengine.v1.Versions.CreateVersion.@OutputOnly",
          "type": "string"
        },
        "user": {
          "type": "string",
          "description": "User who requested this operation.@OutputOnly"
        },
        "ephemeralMessage": {
          "type": "string",
          "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly"
        }
      }
    },
    "ResourceRecord": {
      "type": "object",
      "properties": {
        "type": {
          "description": "Resource record type. Example: AAAA.",
          "type": "string",
          "enum": [
            "A",
            "AAAA",
            "CNAME"
          ],
          "enumDescriptions": [
            "An A resource record. Data is an IPv4 address.",
            "An AAAA resource record. Data is an IPv6 address.",
            "A CNAME resource record. Data is a domain name to be aliased."
          ]
        },
        "name": {
          "description": "Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'.",
          "type": "string"
        },
        "rrdata": {
          "description": "Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1).",
          "type": "string"
        }
      },
      "id": "ResourceRecord",
      "description": "A DNS resource record."
    },
    "LocationMetadata": {
      "type": "object",
      "properties": {
        "standardEnvironmentAvailable": {
          "type": "boolean",
          "description": "App Engine standard environment is available in the given location.@OutputOnly"
        },
        "flexibleEnvironmentAvailable": {
          "type": "boolean",
          "description": "App Engine flexible environment is available in the given location.@OutputOnly"
        },
        "searchApiAvailable": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Search API (https://cloud.google.com/appengine/docs/standard/python/search) is available in the given location."
        }
      },
      "id": "LocationMetadata",
      "description": "Metadata for the given google.cloud.location.Location."
    },
    "Reasons": {
      "type": "object",
      "properties": {
        "serviceActivation": {
          "description": "Consumer Container denotes if the service is active within a project or not. This information could be used to clean up resources in case service in DISABLED_FULL i.e. Service is inactive \u003e 30 days.",
          "type": "string",
          "enum": [
            "SERVICE_ACTIVATION_STATUS_UNSPECIFIED",
            "SERVICE_ACTIVATION_ENABLED",
            "SERVICE_ACTIVATION_DISABLED",
            "SERVICE_ACTIVATION_DISABLED_FULL",
            "SERVICE_ACTIVATION_UNKNOWN_REASON"
          ],
          "enumDescriptions": [
            "Default Unspecified status",
            "Service is active in the project.",
            "Service is disabled in the project recently i.e., within last 24 hours.",
            "Service has been disabled for configured grace_period (default 30 days).",
            "Happens when PSM cannot determine the status of service in a project Could happen due to variety of reasons like PERMISSION_DENIED or Project got deleted etc."
          ]
        },
        "abuse": {
          "enum": [
            "ABUSE_UNKNOWN_REASON",
            "ABUSE_CONTROL_PLANE_SYNC",
            "SUSPEND",
            "REINSTATE"
          ],
          "enumDescriptions": [
            "An unknown reason indicates that the abuse system has not sent a signal for this container.",
            "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.",
            "If a container is deemed abusive we receive a suspend signal. Suspend is a reason to put the container into an INTERNAL_OFF state.",
            "Containers that were once considered abusive can later be deemed non-abusive. When this happens we must reinstate the container. Reinstate is a reason to put the container into an ON state."
          ],
          "type": "string"
        },
        "billing": {
          "type": "string",
          "enum": [
            "BILLING_UNKNOWN_REASON",
            "BILLING_CONTROL_PLANE_SYNC",
            "PROBATION",
            "CLOSE",
            "OPEN"
          ],
          "enumDescriptions": [
            "An unknown reason indicates that the billing system has not sent a signal for this container.",
            "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.",
            "Minor infractions cause a probation signal to be sent. Probation is a reason to put the container into a ON state even though it is a negative signal. CCFE will block mutations for this container while it is on billing probation, but the CLH is expected to serve non-mutation requests.",
            "When a billing account is closed, it is a stronger signal about non-payment. Close is a reason to put the container into an INTERNAL_OFF state.",
            "Consumers can re-open billing accounts and update accounts to pull them out of probation. When this happens, we get a signal that the account is open. Open is a reason to put the container into an ON state."
          ]
        },
        "serviceManagement": {
          "enumDescriptions": [
            "An unknown reason indicates that we have not received a signal from service management about this container. Since containers are created by request of service management, this reason should never be set.",
            "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.",
            "When a customer activates an API CCFE notifies the CLH and sets the container to the ON state.",
            "When a customer deactivates and API service management starts a two-step process to perform the deactivation. The first step is to prepare. Prepare is a reason to put the container in a EXTERNAL_OFF state.",
            "If the deactivation is cancelled, service managed needs to abort the deactivation. Abort is a reason to put the container in an ON state.",
            "If the deactivation is followed through with, service management needs to finish deactivation. Commit is a reason to put the container in a DELETED state."
          ],
          "enum": [
            "SERVICE_MANAGEMENT_UNKNOWN_REASON",
            "SERVICE_MANAGEMENT_CONTROL_PLANE_SYNC",
            "ACTIVATION",
            "PREPARE_DEACTIVATION",
            "ABORT_DEACTIVATION",
            "COMMIT_DEACTIVATION"
          ],
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            true,
            true,
            true,
            true
          ]
        },
        "dataGovernance": {
          "enum": [
            "DATA_GOVERNANCE_UNKNOWN_REASON",
            "DATA_GOVERNANCE_CONTROL_PLANE_SYNC",
            "HIDE",
            "UNHIDE",
            "PURGE"
          ],
          "enumDescriptions": [
            "An unknown reason indicates that data governance has not sent a signal for this container.",
            "Due to various reasons CCFE might proactively restate a container state to a CLH to ensure that the CLH and CCFE are both aware of the container state. This reason can be tied to any of the states.",
            "When a container is deleted we retain some data for a period of time to allow the consumer to change their mind. Data governance sends a signal to hide the data when this occurs. Hide is a reason to put the container in an INTERNAL_OFF state.",
            "The decision to un-delete a container can be made. When this happens data governance tells us to unhide any hidden data. Unhide is a reason to put the container in an ON state.",
            "After a period of time data must be completely removed from our systems. When data governance sends a purge signal we need to remove data. Purge is a reason to put the container in a DELETED state. Purge is the only event that triggers a delete mutation. All other events have update semantics."
          ],
          "type": "string"
        }
      },
      "id": "Reasons",
      "description": "Containers transition between and within states based on reasons sent from various systems. CCFE will provide the CLH with reasons for the current state per system.The current systems that CCFE supports are: Service Management (Inception) Data Governance (Wipeout) Abuse (Ares) Billing (Internal Cloud Billing API) Service Activation (Service Controller)"
    },
    "GceTag": {
      "type": "object",
      "properties": {
        "tag": {
          "type": "string",
          "description": "The administrative_tag name."
        },
        "parent": {
          "items": {
            "type": "string"
          },
          "description": "The parents(s) of the tag. Eg. projects/123, folders/456 It usually contains only one parent. But, in some corner cases, it can contain multiple parents. Currently, organizations are not supported.",
          "type": "array"
        }
      },
      "id": "GceTag",
      "description": "For use only by GCE. GceTag is a wrapper around the GCE administrative tag with parent info."
    },
    "ListDomainMappingsResponse": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "Continuation token for fetching the next page of results.",
          "type": "string"
        },
        "domainMappings": {
          "type": "array",
          "description": "The domain mappings for the application.",
          "items": {
            "$ref": "DomainMapping"
          }
        }
      },
      "id": "ListDomainMappingsResponse",
      "description": "Response message for DomainMappings.ListDomainMappings."
    },
    "Location": {
      "type": "object",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\"."
        },
        "labels": {
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"} ",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "metadata": {
          "type": "object",
          "description": "Service-specific metadata. For example the available capacity at the given location.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "name": {
          "description": "Resource name for the location, which may vary between implementations. For example: \"projects/example-project/locations/us-east1\"",
          "type": "string"
        },
        "locationId": {
          "description": "The canonical id for this location. For example: \"us-east1\".",
          "type": "string"
        }
      },
      "id": "Location",
      "description": "A resource that represents a Google Cloud location."
    },
    "ListAuthorizedCertificatesResponse": {
      "type": "object",
      "properties": {
        "certificates": {
          "type": "array",
          "description": "The SSL certificates the user is authorized to administer.",
          "items": {
            "$ref": "AuthorizedCertificate"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "Continuation token for fetching the next page of results."
        }
      },
      "id": "ListAuthorizedCertificatesResponse",
      "description": "Response message for AuthorizedCertificates.ListAuthorizedCertificates."
    },
    "OperationMetadataV1Alpha": {
      "id": "OperationMetadataV1Alpha",
      "description": "Metadata for the given google.longrunning.Operation.",
      "type": "object",
      "properties": {
        "method": {
          "description": "API method that initiated this operation. Example: google.appengine.v1alpha.Versions.CreateVersion.@OutputOnly",
          "type": "string"
        },
        "user": {
          "type": "string",
          "description": "User who requested this operation.@OutputOnly"
        },
        "ephemeralMessage": {
          "type": "string",
          "description": "Ephemeral message that may change every time the operation is polled. @OutputOnly"
        },
        "insertTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "Time that this operation was created.@OutputOnly"
        },
        "endTime": {
          "format": "google-datetime",
          "description": "Time that this operation completed.@OutputOnly",
          "type": "string"
        },
        "target": {
          "type": "string",
          "description": "Name of the resource that this operation is acting on. Example: apps/myapp/services/default.@OutputOnly"
        },
        "warning": {
          "items": {
            "type": "string"
          },
          "description": "Durable messages that persist on every operation poll. @OutputOnly",
          "type": "array"
        },
        "createVersionMetadata": {
          "$ref": "CreateVersionMetadataV1Alpha"
        }
      }
    },
    "ProjectEvent": {
      "id": "ProjectEvent",
      "description": "The request sent to CLHs during project events.",
      "type": "object",
      "properties": {
        "phase": {
          "enum": [
            "CONTAINER_EVENT_PHASE_UNSPECIFIED",
            "BEFORE_RESOURCE_HANDLING",
            "AFTER_RESOURCE_HANDLING"
          ],
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "description": "Phase indicates when in the container event propagation this event is being communicated. Events are sent before and after the per-resource events are propagated. required",
          "type": "string"
        },
        "state": {
          "description": "The state of the organization that led to this event.",
          "$ref": "ContainerState"
        },
        "eventId": {
          "description": "The unique ID for this project event. CLHs can use this value to dedup repeated calls. required",
          "type": "string"
        },
        "projectMetadata": {
          "$ref": "ProjectsMetadata",
          "description": "The projects metadata for this project. required"
        }
      }
    }
  },
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "servicePath": "",
  "batchPath": "batch",
  "id": "appengine:v1alpha",
  "description": "Provisions and manages developers' App Engine applications.",
  "parameters": {
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "key": {
      "type": "string",
      "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"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "$.xgafv": {
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "enum": [
        "1",
        "2"
      ],
      "type": "string",
      "description": "V1 error format.",
      "location": "query"
    },
    "alt": {
      "description": "Data format for response.",
      "location": "query",
      "type": "string",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "default": "json",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ]
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "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"
    }
  },
  "version": "v1alpha",
  "revision": "20260429",
  "name": "appengine",
  "baseUrl": "https://appengine.googleapis.com/",
  "kind": "discovery#restDescription",
  "mtlsRootUrl": "https://appengine.mtls.googleapis.com/",
  "resources": {
    "apps": {
      "resources": {
        "authorizedDomains": {
          "methods": {
            "list": {
              "parameters": {
                "appsId": {
                  "required": true,
                  "type": "string",
                  "description": "Part of `parent`. Required. Name of the parent Application resource. Example: apps/myapp.",
                  "location": "path"
                },
                "pageSize": {
                  "type": "integer",
                  "description": "Maximum results to return per page.",
                  "location": "query",
                  "format": "int32"
                },
                "pageToken": {
                  "description": "Continuation token for fetching the next page of results.",
                  "location": "query",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "appsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/appengine.admin",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "description": "Lists all domains the user is authorized to administer.",
              "response": {
                "$ref": "ListAuthorizedDomainsResponse"
              },
              "path": "v1alpha/apps/{appsId}/authorizedDomains",
              "flatPath": "v1alpha/apps/{appsId}/authorizedDomains",
              "httpMethod": "GET",
              "id": "appengine.apps.authorizedDomains.list"
            }
          }
        },
        "locations": {
          "methods": {
            "list": {
              "flatPath": "v1alpha/apps/{appsId}/locations",
              "httpMethod": "GET",
              "id": "appengine.apps.locations.list",
              "parameters": {
                "pageSize": {
                  "format": "int32",
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "location": "query",
                  "type": "integer"
                },
                "filter": {
                  "type": "string",
                  "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like \"displayName=tokyo\", and is documented in more detail in AIP-160 (https://google.aip.dev/160).",
                  "location": "query"
                },
                "appsId": {
                  "type": "string",
                  "description": "Part of `name`. The resource that owns the locations collection, if applicable.",
                  "location": "path",
                  "required": true
                },
                "extraLocationTypes": {
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage.",
                  "location": "query",
                  "type": "string",
                  "repeated": true
                },
                "pageToken": {
                  "description": "A page token received from the next_page_token field in the response. Send that page token to receive the subsequent page.",
                  "location": "query",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "appsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/appengine.admin",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "description": "Lists information about the supported locations for this service.This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: Global locations: If name is empty, the method lists the public locations available to all projects. Project-specific locations: If name follows the format projects/{project}, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project.For gRPC and client library implementations, the resource name is passed as the name field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.",
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "path": "v1alpha/apps/{appsId}/locations"
            },
            "get": {
              "flatPath": "v1alpha/apps/{appsId}/locations/{locationsId}",
              "httpMethod": "GET",
              "id": "appengine.apps.locations.get",
              "parameters": {
                "appsId": {
                  "description": "Part of `name`. Resource name for the location.",
                  "location": "path",
                  "type": "string",
                  "required": true
                },
                "locationsId": {
                  "type": "string",
                  "description": "Part of `name`. See documentation of `appsId`.",
                  "location": "path",
                  "required": true
                }
              },
              "parameterOrder": [
                "appsId",
                "locationsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/appengine.admin",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "description": "Gets information about a location.",
              "response": {
                "$ref": "Location"
              },
              "path": "v1alpha/apps/{appsId}/locations/{locationsId}"
            }
          }
        },
        "authorizedCertificates": {
          "methods": {
            "get": {
              "path": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}",
              "response": {
                "$ref": "AuthorizedCertificate"
              },
              "parameters": {
                "authorizedCertificatesId": {
                  "description": "Part of `name`. See documentation of `appsId`.",
                  "location": "path",
                  "type": "string",
                  "required": true
                },
                "view": {
                  "enumDescriptions": [
                    "Basic certificate information, including applicable domains and expiration date.",
                    "The information from BASIC_CERTIFICATE, plus detailed information on the domain mappings that have this certificate mapped."
                  ],
                  "enum": [
                    "BASIC_CERTIFICATE",
                    "FULL_CERTIFICATE"
                  ],
                  "type": "string",
                  "description": "Controls the set of fields returned in the GET response.",
                  "location": "query"
                },
                "appsId": {
                  "required": true,
                  "type": "string",
                  "description": "Part of `name`. Required. Name of the resource requested. Example: apps/myapp/authorizedCertificates/12345.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "appsId",
                "authorizedCertificatesId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/appengine.admin",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "description": "Gets the specified SSL certificate.",
              "id": "appengine.apps.authorizedCertificates.get",
              "httpMethod": "GET",
              "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}"
            },
            "create": {
              "id": "appengine.apps.authorizedCertificates.create",
              "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates",
              "request": {
                "$ref": "AuthorizedCertificate"
              },
              "httpMethod": "POST",
              "path": "v1alpha/apps/{appsId}/authorizedCertificates",
              "parameters": {
                "appsId": {
                  "type": "string",
                  "description": "Part of `parent`. Required. Name of the parent Application resource. Example: apps/myapp.",
                  "location": "path",
                  "required": true
                }
              },
              "parameterOrder": [
                "appsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Uploads the specified SSL certificate.",
              "response": {
                "$ref": "AuthorizedCertificate"
              }
            },
            "list": {
              "parameters": {
                "appsId": {
                  "type": "string",
                  "description": "Part of `parent`. Required. Name of the parent Application resource. Example: apps/myapp.",
                  "location": "path",
                  "required": true
                },
                "pageSize": {
                  "description": "Maximum results to return per page.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                },
                "pageToken": {
                  "description": "Continuation token for fetching the next page of results.",
                  "location": "query",
                  "type": "string"
                },
                "view": {
                  "enumDescriptions": [
                    "Basic certificate information, including applicable domains and expiration date.",
                    "The information from BASIC_CERTIFICATE, plus detailed information on the domain mappings that have this certificate mapped."
                  ],
                  "enum": [
                    "BASIC_CERTIFICATE",
                    "FULL_CERTIFICATE"
                  ],
                  "type": "string",
                  "description": "Controls the set of fields returned in the LIST response.",
                  "location": "query"
                }
              },
              "parameterOrder": [
                "appsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/appengine.admin",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "description": "Lists all SSL certificates the user is authorized to administer.",
              "response": {
                "$ref": "ListAuthorizedCertificatesResponse"
              },
              "path": "v1alpha/apps/{appsId}/authorizedCertificates",
              "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates",
              "httpMethod": "GET",
              "id": "appengine.apps.authorizedCertificates.list"
            },
            "patch": {
              "request": {
                "$ref": "AuthorizedCertificate"
              },
              "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}",
              "httpMethod": "PATCH",
              "id": "appengine.apps.authorizedCertificates.patch",
              "parameters": {
                "appsId": {
                  "type": "string",
                  "description": "Part of `name`. Required. Name of the resource to update. Example: apps/myapp/authorizedCertificates/12345.",
                  "location": "path",
                  "required": true
                },
                "authorizedCertificatesId": {
                  "required": true,
                  "description": "Part of `name`. See documentation of `appsId`.",
                  "location": "path",
                  "type": "string"
                },
                "updateMask": {
                  "format": "google-fieldmask",
                  "type": "string",
                  "description": "Standard field mask for the set of fields to be updated. Updates are only supported on the certificate_raw_data and display_name fields.",
                  "location": "query"
                }
              },
              "parameterOrder": [
                "appsId",
                "authorizedCertificatesId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Updates the specified SSL certificate. To renew a certificate and maintain its existing domain mappings, update certificate_data with a new certificate. The new certificate must be applicable to the same domains as the original certificate. The certificate display_name may also be updated.",
              "response": {
                "$ref": "AuthorizedCertificate"
              },
              "path": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}"
            },
            "delete": {
              "id": "appengine.apps.authorizedCertificates.delete",
              "httpMethod": "DELETE",
              "flatPath": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}",
              "path": "v1alpha/apps/{appsId}/authorizedCertificates/{authorizedCertificatesId}",
              "response": {
                "$ref": "Empty"
              },
              "parameters": {
                "appsId": {
                  "required": true,
                  "type": "string",
                  "description": "Part of `name`. Required. Name of the resource to delete. Example: apps/myapp/authorizedCertificates/12345.",
                  "location": "path"
                },
                "authorizedCertificatesId": {
                  "description": "Part of `name`. See documentation of `appsId`.",
                  "location": "path",
                  "type": "string",
                  "required": true
                }
              },
              "parameterOrder": [
                "appsId",
                "authorizedCertificatesId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Deletes the specified SSL certificate."
            }
          }
        },
        "operations": {
          "methods": {
            "list": {
              "path": "v1alpha/apps/{appsId}/operations",
              "parameters": {
                "filter": {
                  "type": "string",
                  "description": "The standard list filter.",
                  "location": "query"
                },
                "pageSize": {
                  "description": "The standard list page size.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                },
                "pageToken": {
                  "description": "The standard list page token.",
                  "location": "query",
                  "type": "string"
                },
                "returnPartialSuccess": {
                  "description": "When set to true, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field.This can only be true when reading across collections. For example, when parent is set to \"projects/example/locations/-\".This field is not supported by default and will result in an UNIMPLEMENTED error if set unless explicitly documented otherwise in service or product specific documentation.",
                  "location": "query",
                  "type": "boolean"
                },
                "appsId": {
                  "type": "string",
                  "description": "Part of `name`. The name of the operation's parent resource.",
                  "location": "path",
                  "required": true
                }
              },
              "parameterOrder": [
                "appsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/appengine.admin",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.",
              "response": {
                "$ref": "ListOperationsResponse"
              },
              "id": "appengine.apps.operations.list",
              "flatPath": "v1alpha/apps/{appsId}/operations",
              "httpMethod": "GET"
            },
            "get": {
              "parameters": {
                "operationsId": {
                  "required": true,
                  "type": "string",
                  "description": "Part of `name`. See documentation of `appsId`.",
                  "location": "path"
                },
                "appsId": {
                  "required": true,
                  "type": "string",
                  "description": "Part of `name`. The name of the operation resource.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "appsId",
                "operationsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/appengine.admin",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
              "response": {
                "$ref": "Operation"
              },
              "path": "v1alpha/apps/{appsId}/operations/{operationsId}",
              "flatPath": "v1alpha/apps/{appsId}/operations/{operationsId}",
              "httpMethod": "GET",
              "id": "appengine.apps.operations.get"
            }
          }
        },
        "domainMappings": {
          "methods": {
            "list": {
              "parameters": {
                "appsId": {
                  "required": true,
                  "description": "Part of `parent`. Required. Name of the parent Application resource. Example: apps/myapp.",
                  "location": "path",
                  "type": "string"
                },
                "pageSize": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Maximum results to return per page.",
                  "location": "query"
                },
                "pageToken": {
                  "description": "Continuation token for fetching the next page of results.",
                  "location": "query",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "appsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/appengine.admin",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "description": "Lists the domain mappings on an application.",
              "response": {
                "$ref": "ListDomainMappingsResponse"
              },
              "path": "v1alpha/apps/{appsId}/domainMappings",
              "flatPath": "v1alpha/apps/{appsId}/domainMappings",
              "httpMethod": "GET",
              "id": "appengine.apps.domainMappings.list"
            },
            "patch": {
              "flatPath": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}",
              "request": {
                "$ref": "DomainMapping"
              },
              "httpMethod": "PATCH",
              "id": "appengine.apps.domainMappings.patch",
              "parameters": {
                "updateMask": {
                  "format": "google-fieldmask",
                  "description": "Required. Standard field mask for the set of fields to be updated.",
                  "location": "query",
                  "type": "string"
                },
                "noManagedCertificate": {
                  "type": "boolean",
                  "description": "Whether a managed certificate should be provided by App Engine. If true, a certificate ID must be manually set in the DomainMapping resource to configure SSL for this domain. If false, a managed certificate will be provisioned and a certificate ID will be automatically populated. Only applicable if ssl_settings.certificate_id is specified in the update mask.",
                  "location": "query"
                },
                "appsId": {
                  "required": true,
                  "type": "string",
                  "description": "Part of `name`. Required. Name of the resource to update. Example: apps/myapp/domainMappings/example.com.",
                  "location": "path"
                },
                "domainMappingsId": {
                  "type": "string",
                  "description": "Part of `name`. See documentation of `appsId`.",
                  "location": "path",
                  "required": true
                }
              },
              "parameterOrder": [
                "appsId",
                "domainMappingsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Updates the specified domain mapping. To map an SSL certificate to a domain mapping, update certificate_id to point to an AuthorizedCertificate resource. A user must be authorized to administer the associated domain in order to update a DomainMapping resource.",
              "response": {
                "$ref": "Operation"
              },
              "path": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}"
            },
            "delete": {
              "httpMethod": "DELETE",
              "flatPath": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}",
              "id": "appengine.apps.domainMappings.delete",
              "response": {
                "$ref": "Operation"
              },
              "parameters": {
                "appsId": {
                  "required": true,
                  "type": "string",
                  "description": "Part of `name`. Required. Name of the resource to delete. Example: apps/myapp/domainMappings/example.com.",
                  "location": "path"
                },
                "domainMappingsId": {
                  "required": true,
                  "type": "string",
                  "description": "Part of `name`. See documentation of `appsId`.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "appsId",
                "domainMappingsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Deletes the specified domain mapping. A user must be authorized to administer the associated domain in order to delete a DomainMapping resource.",
              "path": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}"
            },
            "get": {
              "httpMethod": "GET",
              "flatPath": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}",
              "id": "appengine.apps.domainMappings.get",
              "response": {
                "$ref": "DomainMapping"
              },
              "parameters": {
                "appsId": {
                  "description": "Part of `name`. Required. Name of the resource requested. Example: apps/myapp/domainMappings/example.com.",
                  "location": "path",
                  "type": "string",
                  "required": true
                },
                "domainMappingsId": {
                  "required": true,
                  "type": "string",
                  "description": "Part of `name`. See documentation of `appsId`.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "appsId",
                "domainMappingsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/appengine.admin",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "description": "Gets the specified domain mapping.",
              "path": "v1alpha/apps/{appsId}/domainMappings/{domainMappingsId}"
            },
            "create": {
              "flatPath": "v1alpha/apps/{appsId}/domainMappings",
              "request": {
                "$ref": "DomainMapping"
              },
              "httpMethod": "POST",
              "id": "appengine.apps.domainMappings.create",
              "parameters": {
                "noManagedCertificate": {
                  "type": "boolean",
                  "description": "Whether a managed certificate should be provided by App Engine. If true, a certificate ID must be manaually set in the DomainMapping resource to configure SSL for this domain. If false, a managed certificate will be provisioned and a certificate ID will be automatically populated.",
                  "location": "query"
                },
                "appsId": {
                  "description": "Part of `parent`. Required. Name of the parent Application resource. Example: apps/myapp.",
                  "location": "path",
                  "type": "string",
                  "required": true
                },
                "overrideStrategy": {
                  "enum": [
                    "UNSPECIFIED_DOMAIN_OVERRIDE_STRATEGY",
                    "STRICT",
                    "OVERRIDE"
                  ],
                  "description": "Whether the domain creation should override any existing mappings for this domain. By default, overrides are rejected.",
                  "location": "query",
                  "type": "string",
                  "enumDescriptions": [
                    "Strategy unspecified. Defaults to STRICT.",
                    "Overrides not allowed. If a mapping already exists for the specified domain, the request will return an ALREADY_EXISTS (409).",
                    "Overrides allowed. If a mapping already exists for the specified domain, the request will overwrite it. Note that this might stop another Google product from serving. For example, if the domain is mapped to another App Engine application, that app will no longer serve from that domain."
                  ]
                }
              },
              "parameterOrder": [
                "appsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Maps a domain to an application. A user must be authorized to administer a domain in order to map it to an application. For a list of available authorized domains, see AuthorizedDomains.ListAuthorizedDomains.",
              "response": {
                "$ref": "Operation"
              },
              "path": "v1alpha/apps/{appsId}/domainMappings"
            }
          }
        }
      }
    },
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "list": {
              "path": "v1alpha/projects/{projectsId}/locations",
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "parameters": {
                "extraLocationTypes": {
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage.",
                  "location": "query",
                  "type": "string",
                  "repeated": true
                },
                "pageToken": {
                  "type": "string",
                  "description": "A page token received from the next_page_token field in the response. Send that page token to receive the subsequent page.",
                  "location": "query"
                },
                "projectsId": {
                  "type": "string",
                  "description": "Part of `name`. The resource that owns the locations collection, if applicable.",
                  "location": "path",
                  "required": true
                },
                "pageSize": {
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                },
                "filter": {
                  "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like \"displayName=tokyo\", and is documented in more detail in AIP-160 (https://google.aip.dev/160).",
                  "location": "query",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "projectsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/appengine.admin",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "description": "Lists information about the supported locations for this service.This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: Global locations: If name is empty, the method lists the public locations available to all projects. Project-specific locations: If name follows the format projects/{project}, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project.For gRPC and client library implementations, the resource name is passed as the name field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.",
              "id": "appengine.projects.locations.list",
              "httpMethod": "GET",
              "flatPath": "v1alpha/projects/{projectsId}/locations"
            },
            "get": {
              "path": "v1alpha/projects/{projectsId}/locations/{locationsId}",
              "parameters": {
                "projectsId": {
                  "type": "string",
                  "description": "Part of `name`. Resource name for the location.",
                  "location": "path",
                  "required": true
                },
                "locationsId": {
                  "required": true,
                  "type": "string",
                  "description": "Part of `name`. See documentation of `projectsId`.",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "projectsId",
                "locationsId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/appengine.admin",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "description": "Gets information about a location.",
              "response": {
                "$ref": "Location"
              },
              "id": "appengine.projects.locations.get",
              "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}",
              "httpMethod": "GET"
            }
          },
          "resources": {
            "operations": {
              "methods": {
                "list": {
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations",
                  "httpMethod": "GET",
                  "id": "appengine.projects.locations.operations.list",
                  "parameters": {
                    "filter": {
                      "description": "The standard list filter.",
                      "location": "query",
                      "type": "string"
                    },
                    "projectsId": {
                      "description": "Part of `name`. The name of the operation's parent resource.",
                      "location": "path",
                      "type": "string",
                      "required": true
                    },
                    "pageSize": {
                      "format": "int32",
                      "description": "The standard list page size.",
                      "location": "query",
                      "type": "integer"
                    },
                    "pageToken": {
                      "description": "The standard list page token.",
                      "location": "query",
                      "type": "string"
                    },
                    "returnPartialSuccess": {
                      "description": "When set to true, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field.This can only be true when reading across collections. For example, when parent is set to \"projects/example/locations/-\".This field is not supported by default and will result in an UNIMPLEMENTED error if set unless explicitly documented otherwise in service or product specific documentation.",
                      "location": "query",
                      "type": "boolean"
                    },
                    "locationsId": {
                      "required": true,
                      "type": "string",
                      "description": "Part of `name`. See documentation of `projectsId`.",
                      "location": "path"
                    }
                  },
                  "parameterOrder": [
                    "projectsId",
                    "locationsId"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/appengine.admin",
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloud-platform.read-only"
                  ],
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.",
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations"
                },
                "get": {
                  "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "httpMethod": "GET",
                  "id": "appengine.projects.locations.operations.get",
                  "parameters": {
                    "operationsId": {
                      "required": true,
                      "description": "Part of `name`. See documentation of `projectsId`.",
                      "location": "path",
                      "type": "string"
                    },
                    "projectsId": {
                      "required": true,
                      "description": "Part of `name`. The name of the operation resource.",
                      "location": "path",
                      "type": "string"
                    },
                    "locationsId": {
                      "type": "string",
                      "description": "Part of `name`. See documentation of `projectsId`.",
                      "location": "path",
                      "required": true
                    }
                  },
                  "parameterOrder": [
                    "projectsId",
                    "locationsId",
                    "operationsId"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/appengine.admin",
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloud-platform.read-only"
                  ],
                  "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
                  "response": {
                    "$ref": "Operation"
                  },
                  "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}"
                }
              }
            },
            "applications": {
              "resources": {
                "authorizedCertificates": {
                  "methods": {
                    "create": {
                      "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedCertificates",
                      "response": {
                        "$ref": "AuthorizedCertificate"
                      },
                      "parameters": {
                        "projectsId": {
                          "type": "string",
                          "description": "Part of `parent`. Required. Name of the parent Application resource. Example: apps/myapp.",
                          "location": "path",
                          "required": true
                        },
                        "locationsId": {
                          "required": true,
                          "type": "string",
                          "description": "Part of `parent`. See documentation of `projectsId`.",
                          "location": "path"
                        },
                        "applicationsId": {
                          "required": true,
                          "description": "Part of `parent`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "projectsId",
                        "locationsId",
                        "applicationsId"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Uploads the specified SSL certificate.",
                      "id": "appengine.projects.locations.applications.authorizedCertificates.create",
                      "httpMethod": "POST",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedCertificates",
                      "request": {
                        "$ref": "AuthorizedCertificate"
                      }
                    },
                    "get": {
                      "response": {
                        "$ref": "AuthorizedCertificate"
                      },
                      "parameters": {
                        "projectsId": {
                          "required": true,
                          "type": "string",
                          "description": "Part of `name`. Required. Name of the resource requested. Example: apps/myapp/authorizedCertificates/12345.",
                          "location": "path"
                        },
                        "applicationsId": {
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string",
                          "required": true
                        },
                        "authorizedCertificatesId": {
                          "type": "string",
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path",
                          "required": true
                        },
                        "view": {
                          "enumDescriptions": [
                            "Basic certificate information, including applicable domains and expiration date.",
                            "The information from BASIC_CERTIFICATE, plus detailed information on the domain mappings that have this certificate mapped."
                          ],
                          "type": "string",
                          "description": "Controls the set of fields returned in the GET response.",
                          "location": "query",
                          "enum": [
                            "BASIC_CERTIFICATE",
                            "FULL_CERTIFICATE"
                          ]
                        },
                        "locationsId": {
                          "required": true,
                          "type": "string",
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path"
                        }
                      },
                      "parameterOrder": [
                        "projectsId",
                        "locationsId",
                        "applicationsId",
                        "authorizedCertificatesId"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/appengine.admin",
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloud-platform.read-only"
                      ],
                      "description": "Gets the specified SSL certificate.",
                      "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedCertificates/{authorizedCertificatesId}",
                      "httpMethod": "GET",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedCertificates/{authorizedCertificatesId}",
                      "id": "appengine.projects.locations.applications.authorizedCertificates.get"
                    },
                    "list": {
                      "id": "appengine.projects.locations.applications.authorizedCertificates.list",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedCertificates",
                      "httpMethod": "GET",
                      "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedCertificates",
                      "parameters": {
                        "pageToken": {
                          "type": "string",
                          "description": "Continuation token for fetching the next page of results.",
                          "location": "query"
                        },
                        "applicationsId": {
                          "description": "Part of `parent`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string",
                          "required": true
                        },
                        "view": {
                          "description": "Controls the set of fields returned in the LIST response.",
                          "location": "query",
                          "type": "string",
                          "enum": [
                            "BASIC_CERTIFICATE",
                            "FULL_CERTIFICATE"
                          ],
                          "enumDescriptions": [
                            "Basic certificate information, including applicable domains and expiration date.",
                            "The information from BASIC_CERTIFICATE, plus detailed information on the domain mappings that have this certificate mapped."
                          ]
                        },
                        "locationsId": {
                          "required": true,
                          "description": "Part of `parent`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string"
                        },
                        "projectsId": {
                          "required": true,
                          "type": "string",
                          "description": "Part of `parent`. Required. Name of the parent Application resource. Example: apps/myapp.",
                          "location": "path"
                        },
                        "pageSize": {
                          "description": "Maximum results to return per page.",
                          "location": "query",
                          "type": "integer",
                          "format": "int32"
                        }
                      },
                      "parameterOrder": [
                        "projectsId",
                        "locationsId",
                        "applicationsId"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/appengine.admin",
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloud-platform.read-only"
                      ],
                      "description": "Lists all SSL certificates the user is authorized to administer.",
                      "response": {
                        "$ref": "ListAuthorizedCertificatesResponse"
                      }
                    },
                    "patch": {
                      "id": "appengine.projects.locations.applications.authorizedCertificates.patch",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedCertificates/{authorizedCertificatesId}",
                      "request": {
                        "$ref": "AuthorizedCertificate"
                      },
                      "httpMethod": "PATCH",
                      "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedCertificates/{authorizedCertificatesId}",
                      "parameters": {
                        "locationsId": {
                          "required": true,
                          "type": "string",
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path"
                        },
                        "applicationsId": {
                          "required": true,
                          "type": "string",
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path"
                        },
                        "authorizedCertificatesId": {
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string",
                          "required": true
                        },
                        "updateMask": {
                          "description": "Standard field mask for the set of fields to be updated. Updates are only supported on the certificate_raw_data and display_name fields.",
                          "location": "query",
                          "type": "string",
                          "format": "google-fieldmask"
                        },
                        "projectsId": {
                          "type": "string",
                          "description": "Part of `name`. Required. Name of the resource to update. Example: apps/myapp/authorizedCertificates/12345.",
                          "location": "path",
                          "required": true
                        }
                      },
                      "parameterOrder": [
                        "projectsId",
                        "locationsId",
                        "applicationsId",
                        "authorizedCertificatesId"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Updates the specified SSL certificate. To renew a certificate and maintain its existing domain mappings, update certificate_data with a new certificate. The new certificate must be applicable to the same domains as the original certificate. The certificate display_name may also be updated.",
                      "response": {
                        "$ref": "AuthorizedCertificate"
                      }
                    },
                    "delete": {
                      "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedCertificates/{authorizedCertificatesId}",
                      "response": {
                        "$ref": "Empty"
                      },
                      "parameters": {
                        "applicationsId": {
                          "type": "string",
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path",
                          "required": true
                        },
                        "authorizedCertificatesId": {
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string",
                          "required": true
                        },
                        "projectsId": {
                          "required": true,
                          "description": "Part of `name`. Required. Name of the resource to delete. Example: apps/myapp/authorizedCertificates/12345.",
                          "location": "path",
                          "type": "string"
                        },
                        "locationsId": {
                          "type": "string",
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path",
                          "required": true
                        }
                      },
                      "parameterOrder": [
                        "projectsId",
                        "locationsId",
                        "applicationsId",
                        "authorizedCertificatesId"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Deletes the specified SSL certificate.",
                      "id": "appengine.projects.locations.applications.authorizedCertificates.delete",
                      "httpMethod": "DELETE",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedCertificates/{authorizedCertificatesId}"
                    }
                  }
                },
                "domainMappings": {
                  "methods": {
                    "delete": {
                      "id": "appengine.projects.locations.applications.domainMappings.delete",
                      "httpMethod": "DELETE",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings/{domainMappingsId}",
                      "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings/{domainMappingsId}",
                      "response": {
                        "$ref": "Operation"
                      },
                      "parameters": {
                        "applicationsId": {
                          "required": true,
                          "type": "string",
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path"
                        },
                        "projectsId": {
                          "description": "Part of `name`. Required. Name of the resource to delete. Example: apps/myapp/domainMappings/example.com.",
                          "location": "path",
                          "type": "string",
                          "required": true
                        },
                        "locationsId": {
                          "required": true,
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string"
                        },
                        "domainMappingsId": {
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string",
                          "required": true
                        }
                      },
                      "parameterOrder": [
                        "projectsId",
                        "locationsId",
                        "applicationsId",
                        "domainMappingsId"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Deletes the specified domain mapping. A user must be authorized to administer the associated domain in order to delete a DomainMapping resource."
                    },
                    "list": {
                      "id": "appengine.projects.locations.applications.domainMappings.list",
                      "httpMethod": "GET",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings",
                      "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings",
                      "response": {
                        "$ref": "ListDomainMappingsResponse"
                      },
                      "parameters": {
                        "projectsId": {
                          "required": true,
                          "description": "Part of `parent`. Required. Name of the parent Application resource. Example: apps/myapp.",
                          "location": "path",
                          "type": "string"
                        },
                        "pageSize": {
                          "format": "int32",
                          "description": "Maximum results to return per page.",
                          "location": "query",
                          "type": "integer"
                        },
                        "locationsId": {
                          "required": true,
                          "description": "Part of `parent`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string"
                        },
                        "pageToken": {
                          "description": "Continuation token for fetching the next page of results.",
                          "location": "query",
                          "type": "string"
                        },
                        "applicationsId": {
                          "type": "string",
                          "description": "Part of `parent`. See documentation of `projectsId`.",
                          "location": "path",
                          "required": true
                        }
                      },
                      "parameterOrder": [
                        "projectsId",
                        "locationsId",
                        "applicationsId"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/appengine.admin",
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloud-platform.read-only"
                      ],
                      "description": "Lists the domain mappings on an application."
                    },
                    "patch": {
                      "response": {
                        "$ref": "Operation"
                      },
                      "parameters": {
                        "projectsId": {
                          "description": "Part of `name`. Required. Name of the resource to update. Example: apps/myapp/domainMappings/example.com.",
                          "location": "path",
                          "type": "string",
                          "required": true
                        },
                        "domainMappingsId": {
                          "type": "string",
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path",
                          "required": true
                        },
                        "noManagedCertificate": {
                          "type": "boolean",
                          "description": "Whether a managed certificate should be provided by App Engine. If true, a certificate ID must be manually set in the DomainMapping resource to configure SSL for this domain. If false, a managed certificate will be provisioned and a certificate ID will be automatically populated. Only applicable if ssl_settings.certificate_id is specified in the update mask.",
                          "location": "query"
                        },
                        "locationsId": {
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string",
                          "required": true
                        },
                        "updateMask": {
                          "type": "string",
                          "description": "Required. Standard field mask for the set of fields to be updated.",
                          "location": "query",
                          "format": "google-fieldmask"
                        },
                        "applicationsId": {
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string",
                          "required": true
                        }
                      },
                      "parameterOrder": [
                        "projectsId",
                        "locationsId",
                        "applicationsId",
                        "domainMappingsId"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Updates the specified domain mapping. To map an SSL certificate to a domain mapping, update certificate_id to point to an AuthorizedCertificate resource. A user must be authorized to administer the associated domain in order to update a DomainMapping resource.",
                      "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings/{domainMappingsId}",
                      "httpMethod": "PATCH",
                      "request": {
                        "$ref": "DomainMapping"
                      },
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings/{domainMappingsId}",
                      "id": "appengine.projects.locations.applications.domainMappings.patch"
                    },
                    "get": {
                      "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings/{domainMappingsId}",
                      "parameters": {
                        "applicationsId": {
                          "required": true,
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string"
                        },
                        "projectsId": {
                          "required": true,
                          "type": "string",
                          "description": "Part of `name`. Required. Name of the resource requested. Example: apps/myapp/domainMappings/example.com.",
                          "location": "path"
                        },
                        "locationsId": {
                          "type": "string",
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path",
                          "required": true
                        },
                        "domainMappingsId": {
                          "required": true,
                          "type": "string",
                          "description": "Part of `name`. See documentation of `projectsId`.",
                          "location": "path"
                        }
                      },
                      "parameterOrder": [
                        "projectsId",
                        "locationsId",
                        "applicationsId",
                        "domainMappingsId"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/appengine.admin",
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloud-platform.read-only"
                      ],
                      "description": "Gets the specified domain mapping.",
                      "response": {
                        "$ref": "DomainMapping"
                      },
                      "id": "appengine.projects.locations.applications.domainMappings.get",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings/{domainMappingsId}",
                      "httpMethod": "GET"
                    },
                    "create": {
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings",
                      "request": {
                        "$ref": "DomainMapping"
                      },
                      "httpMethod": "POST",
                      "id": "appengine.projects.locations.applications.domainMappings.create",
                      "parameters": {
                        "applicationsId": {
                          "required": true,
                          "description": "Part of `parent`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string"
                        },
                        "locationsId": {
                          "description": "Part of `parent`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string",
                          "required": true
                        },
                        "overrideStrategy": {
                          "enumDescriptions": [
                            "Strategy unspecified. Defaults to STRICT.",
                            "Overrides not allowed. If a mapping already exists for the specified domain, the request will return an ALREADY_EXISTS (409).",
                            "Overrides allowed. If a mapping already exists for the specified domain, the request will overwrite it. Note that this might stop another Google product from serving. For example, if the domain is mapped to another App Engine application, that app will no longer serve from that domain."
                          ],
                          "description": "Whether the domain creation should override any existing mappings for this domain. By default, overrides are rejected.",
                          "location": "query",
                          "type": "string",
                          "enum": [
                            "UNSPECIFIED_DOMAIN_OVERRIDE_STRATEGY",
                            "STRICT",
                            "OVERRIDE"
                          ]
                        },
                        "noManagedCertificate": {
                          "type": "boolean",
                          "description": "Whether a managed certificate should be provided by App Engine. If true, a certificate ID must be manaually set in the DomainMapping resource to configure SSL for this domain. If false, a managed certificate will be provisioned and a certificate ID will be automatically populated.",
                          "location": "query"
                        },
                        "projectsId": {
                          "description": "Part of `parent`. Required. Name of the parent Application resource. Example: apps/myapp.",
                          "location": "path",
                          "type": "string",
                          "required": true
                        }
                      },
                      "parameterOrder": [
                        "projectsId",
                        "locationsId",
                        "applicationsId"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Maps a domain to an application. A user must be authorized to administer a domain in order to map it to an application. For a list of available authorized domains, see AuthorizedDomains.ListAuthorizedDomains.",
                      "response": {
                        "$ref": "Operation"
                      },
                      "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/domainMappings"
                    }
                  }
                },
                "authorizedDomains": {
                  "methods": {
                    "list": {
                      "path": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedDomains",
                      "response": {
                        "$ref": "ListAuthorizedDomainsResponse"
                      },
                      "parameters": {
                        "pageToken": {
                          "description": "Continuation token for fetching the next page of results.",
                          "location": "query",
                          "type": "string"
                        },
                        "applicationsId": {
                          "type": "string",
                          "description": "Part of `parent`. See documentation of `projectsId`.",
                          "location": "path",
                          "required": true
                        },
                        "locationsId": {
                          "description": "Part of `parent`. See documentation of `projectsId`.",
                          "location": "path",
                          "type": "string",
                          "required": true
                        },
                        "projectsId": {
                          "type": "string",
                          "description": "Part of `parent`. Required. Name of the parent Application resource. Example: apps/myapp.",
                          "location": "path",
                          "required": true
                        },
                        "pageSize": {
                          "format": "int32",
                          "description": "Maximum results to return per page.",
                          "location": "query",
                          "type": "integer"
                        }
                      },
                      "parameterOrder": [
                        "projectsId",
                        "locationsId",
                        "applicationsId"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/appengine.admin",
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloud-platform.read-only"
                      ],
                      "description": "Lists all domains the user is authorized to administer.",
                      "id": "appengine.projects.locations.applications.authorizedDomains.list",
                      "httpMethod": "GET",
                      "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/authorizedDomains"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
