{
  "resources": {
    "organizations": {
      "resources": {
        "locations": {
          "methods": {
            "getPartner": {
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Partner"
              },
              "path": "v1beta/{+name}",
              "id": "cloudcontrolspartner.organizations.locations.getPartner",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Get details of a Partner.",
              "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/partner",
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "required": true,
                  "location": "path",
                  "pattern": "^organizations/[^/]+/locations/[^/]+/partner$",
                  "type": "string",
                  "description": "Required. Format: `organizations/{organization}/locations/{location}/partner`"
                }
              }
            }
          },
          "resources": {
            "customers": {
              "methods": {
                "delete": {
                  "id": "cloudcontrolspartner.organizations.locations.customers.delete",
                  "path": "v1beta/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Empty"
                  },
                  "parameters": {
                    "name": {
                      "required": true,
                      "location": "path",
                      "pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+$",
                      "type": "string",
                      "description": "Required. name of the resource to be deleted format: name=organizations/*/locations/*/customers/*"
                    }
                  },
                  "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}",
                  "httpMethod": "DELETE",
                  "description": "Delete details of a single customer",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "id": "cloudcontrolspartner.organizations.locations.customers.get",
                  "path": "v1beta/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Customer"
                  },
                  "parameters": {
                    "name": {
                      "pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "description": "Required. Format: `organizations/{organization}/locations/{location}/customers/{customer}`"
                    }
                  },
                  "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}",
                  "httpMethod": "GET",
                  "description": "Gets details of a single customer",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "parameterOrder": [
                    "parent"
                  ],
                  "response": {
                    "$ref": "ListCustomersResponse"
                  },
                  "id": "cloudcontrolspartner.organizations.locations.customers.list",
                  "path": "v1beta/{+parent}/customers",
                  "description": "Lists customers of a partner identified by its Google Cloud organization ID",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "orderBy": {
                      "location": "query",
                      "description": "Optional. Hint for how to order the results",
                      "type": "string"
                    },
                    "parent": {
                      "description": "Required. Parent resource Format: `organizations/{organization}/locations/{location}`",
                      "type": "string",
                      "pattern": "^organizations/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true
                    },
                    "pageSize": {
                      "description": "The maximum number of Customers to return. The service may return fewer than this value. If unspecified, at most 500 Customers will be returned.",
                      "type": "integer",
                      "format": "int32",
                      "location": "query"
                    },
                    "filter": {
                      "location": "query",
                      "description": "Optional. Filtering results",
                      "type": "string"
                    },
                    "pageToken": {
                      "description": "A page token, received from a previous `ListCustomers` call. Provide this to retrieve the subsequent page.",
                      "type": "string",
                      "location": "query"
                    }
                  },
                  "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/customers",
                  "httpMethod": "GET"
                },
                "create": {
                  "parameterOrder": [
                    "parent"
                  ],
                  "response": {
                    "$ref": "Customer"
                  },
                  "id": "cloudcontrolspartner.organizations.locations.customers.create",
                  "path": "v1beta/{+parent}/customers",
                  "description": "Creates a new customer.",
                  "request": {
                    "$ref": "Customer"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "parent": {
                      "pattern": "^organizations/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "description": "Required. Parent resource Format: `organizations/{organization}/locations/{location}`",
                      "type": "string"
                    },
                    "customerId": {
                      "location": "query",
                      "type": "string",
                      "description": "Required. The customer id to use for the customer, which will become the final component of the customer's resource name. The specified value must be a valid Google cloud organization id."
                    }
                  },
                  "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/customers",
                  "httpMethod": "POST"
                },
                "patch": {
                  "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}",
                  "httpMethod": "PATCH",
                  "parameters": {
                    "name": {
                      "pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}`"
                    },
                    "updateMask": {
                      "location": "query",
                      "description": "Optional. The list of fields to update",
                      "type": "string",
                      "format": "google-fieldmask"
                    }
                  },
                  "request": {
                    "$ref": "Customer"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Update details of a single customer",
                  "path": "v1beta/{+name}",
                  "id": "cloudcontrolspartner.organizations.locations.customers.patch",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Customer"
                  }
                }
              },
              "resources": {
                "workloads": {
                  "methods": {
                    "get": {
                      "parameters": {
                        "name": {
                          "type": "string",
                          "description": "Required. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}`",
                          "pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+$",
                          "required": true,
                          "location": "path"
                        }
                      },
                      "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads/{workloadsId}",
                      "httpMethod": "GET",
                      "description": "Gets details of a single workload",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "cloudcontrolspartner.organizations.locations.customers.workloads.get",
                      "path": "v1beta/{+name}",
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "Workload"
                      }
                    },
                    "getEkmConnections": {
                      "id": "cloudcontrolspartner.organizations.locations.customers.workloads.getEkmConnections",
                      "path": "v1beta/{+name}",
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "EkmConnections"
                      },
                      "parameters": {
                        "name": {
                          "description": "Required. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/ekmConnections`",
                          "type": "string",
                          "location": "path",
                          "required": true,
                          "pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+/ekmConnections$"
                        }
                      },
                      "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads/{workloadsId}/ekmConnections",
                      "httpMethod": "GET",
                      "description": "Gets the EKM connections associated with a workload",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "getPartnerPermissions": {
                      "description": "Gets the partner permissions granted for a workload",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "name": {
                          "pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+/partnerPermissions$",
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "description": "Required. Name of the resource to get in the format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/partnerPermissions`"
                        }
                      },
                      "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads/{workloadsId}/partnerPermissions",
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "PartnerPermissions"
                      },
                      "id": "cloudcontrolspartner.organizations.locations.customers.workloads.getPartnerPermissions",
                      "path": "v1beta/{+name}"
                    },
                    "list": {
                      "parameterOrder": [
                        "parent"
                      ],
                      "response": {
                        "$ref": "ListWorkloadsResponse"
                      },
                      "path": "v1beta/{+parent}/workloads",
                      "id": "cloudcontrolspartner.organizations.locations.customers.workloads.list",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Lists customer workloads for a given customer org id",
                      "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads",
                      "httpMethod": "GET",
                      "parameters": {
                        "pageToken": {
                          "location": "query",
                          "type": "string",
                          "description": "A page token, received from a previous `ListWorkloads` call. Provide this to retrieve the subsequent page."
                        },
                        "filter": {
                          "description": "Optional. Filtering results.",
                          "type": "string",
                          "location": "query"
                        },
                        "pageSize": {
                          "description": "The maximum number of workloads to return. The service may return fewer than this value. If unspecified, at most 500 workloads will be returned.",
                          "type": "integer",
                          "format": "int32",
                          "location": "query"
                        },
                        "parent": {
                          "pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+$",
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "description": "Required. Parent resource Format: `organizations/{organization}/locations/{location}/customers/{customer}`"
                        },
                        "orderBy": {
                          "type": "string",
                          "description": "Optional. Hint for how to order the results.",
                          "location": "query"
                        }
                      }
                    }
                  },
                  "resources": {
                    "accessApprovalRequests": {
                      "methods": {
                        "list": {
                          "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads/{workloadsId}/accessApprovalRequests",
                          "httpMethod": "GET",
                          "parameters": {
                            "orderBy": {
                              "location": "query",
                              "description": "Optional. Hint for how to order the results.",
                              "type": "string"
                            },
                            "pageSize": {
                              "description": "Optional. The maximum number of access requests to return. The service may return fewer than this value. If unspecified, at most 500 access requests will be returned.",
                              "type": "integer",
                              "format": "int32",
                              "location": "query"
                            },
                            "parent": {
                              "type": "string",
                              "description": "Required. Parent resource Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}`",
                              "required": true,
                              "location": "path",
                              "pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+$"
                            },
                            "filter": {
                              "description": "Optional. Filtering results.",
                              "type": "string",
                              "location": "query"
                            },
                            "pageToken": {
                              "location": "query",
                              "type": "string",
                              "description": "Optional. A page token, received from a previous `ListAccessApprovalRequests` call. Provide this to retrieve the subsequent page."
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "deprecated": true,
                          "description": "Deprecated: Only returns access approval requests directly associated with an assured workload folder.",
                          "path": "v1beta/{+parent}/accessApprovalRequests",
                          "id": "cloudcontrolspartner.organizations.locations.customers.workloads.accessApprovalRequests.list",
                          "parameterOrder": [
                            "parent"
                          ],
                          "response": {
                            "$ref": "ListAccessApprovalRequestsResponse"
                          }
                        }
                      },
                      "deprecated": true
                    },
                    "violations": {
                      "methods": {
                        "list": {
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists Violations for a workload Callers may also choose to read across multiple Customers or for a single customer as per [AIP-159](https://google.aip.dev/159) by using '-' (the hyphen or dash character) as a wildcard character instead of {customer} & {workload}. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}`",
                          "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads/{workloadsId}/violations",
                          "httpMethod": "GET",
                          "parameters": {
                            "parent": {
                              "description": "Required. Parent resource Format `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}`",
                              "type": "string",
                              "location": "path",
                              "required": true,
                              "pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+$"
                            },
                            "interval.startTime": {
                              "location": "query",
                              "description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.",
                              "type": "string",
                              "format": "google-datetime"
                            },
                            "pageSize": {
                              "location": "query",
                              "description": "Optional. The maximum number of customers row to return. The service may return fewer than this value. If unspecified, at most 10 customers will be returned.",
                              "type": "integer",
                              "format": "int32"
                            },
                            "orderBy": {
                              "description": "Optional. Hint for how to order the results",
                              "type": "string",
                              "location": "query"
                            },
                            "pageToken": {
                              "location": "query",
                              "description": "Optional. A page token, received from a previous `ListViolations` call. Provide this to retrieve the subsequent page.",
                              "type": "string"
                            },
                            "interval.endTime": {
                              "description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.",
                              "type": "string",
                              "format": "google-datetime",
                              "location": "query"
                            },
                            "filter": {
                              "location": "query",
                              "type": "string",
                              "description": "Optional. Filtering results"
                            }
                          },
                          "parameterOrder": [
                            "parent"
                          ],
                          "response": {
                            "$ref": "ListViolationsResponse"
                          },
                          "path": "v1beta/{+parent}/violations",
                          "id": "cloudcontrolspartner.organizations.locations.customers.workloads.violations.list"
                        },
                        "get": {
                          "path": "v1beta/{+name}",
                          "id": "cloudcontrolspartner.organizations.locations.customers.workloads.violations.get",
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "Violation"
                          },
                          "flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/customers/{customersId}/workloads/{workloadsId}/violations/{violationsId}",
                          "httpMethod": "GET",
                          "parameters": {
                            "name": {
                              "pattern": "^organizations/[^/]+/locations/[^/]+/customers/[^/]+/workloads/[^/]+/violations/[^/]+$",
                              "required": true,
                              "location": "path",
                              "type": "string",
                              "description": "Required. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/violations/{violation}`"
                            }
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Gets details of a single Violation."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "version_module": true,
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "protocol": "rest",
  "revision": "20260812",
  "discoveryVersion": "v1",
  "basePath": "",
  "title": "Cloud Controls Partner API",
  "id": "cloudcontrolspartner:v1beta",
  "kind": "discovery#restDescription",
  "parameters": {
    "alt": {
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "type": "string",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "default": "json",
      "location": "query"
    },
    "$.xgafv": {
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "type": "string",
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "location": "query"
    },
    "callback": {
      "location": "query",
      "description": "JSONP",
      "type": "string"
    },
    "quotaUser": {
      "location": "query",
      "type": "string",
      "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."
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "type": "string",
      "location": "query"
    },
    "access_token": {
      "location": "query",
      "description": "OAuth access token.",
      "type": "string"
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "type": "boolean",
      "location": "query",
      "default": "true"
    },
    "upload_protocol": {
      "location": "query",
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
    },
    "uploadType": {
      "location": "query",
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "key": {
      "location": "query",
      "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."
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    }
  },
  "servicePath": "",
  "canonicalName": "Cloud Controls Partner Service",
  "batchPath": "batch",
  "documentationLink": "https://cloud.google.com/sovereign-controls-by-partners/docs/sovereign-partners/reference/rest",
  "version": "v1beta",
  "baseUrl": "https://cloudcontrolspartner.googleapis.com/",
  "mtlsRootUrl": "https://cloudcontrolspartner.mtls.googleapis.com/",
  "fullyEncodeReservedExpansion": true,
  "name": "cloudcontrolspartner",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "auth": {
    "oauth2": {
      "scopes": {
        "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."
        }
      }
    }
  },
  "rootUrl": "https://cloudcontrolspartner.googleapis.com/",
  "schemas": {
    "Console": {
      "properties": {
        "additionalLinks": {
          "description": "Additional urls for more information about steps",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "steps": {
          "description": "Steps to resolve violation via cloud console",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "consoleUris": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Link to console page where violations can be resolved"
        }
      },
      "id": "Console",
      "type": "object",
      "description": "Remediation instructions to resolve violation via cloud console"
    },
    "Empty": {
      "properties": {},
      "id": "Empty",
      "type": "object",
      "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); }"
    },
    "WorkloadOnboardingState": {
      "properties": {
        "onboardingSteps": {
          "description": "List of workload onboarding steps.",
          "type": "array",
          "items": {
            "$ref": "WorkloadOnboardingStep"
          }
        }
      },
      "id": "WorkloadOnboardingState",
      "type": "object",
      "description": "Container for workload onboarding steps."
    },
    "EkmConnection": {
      "description": "Details about the EKM connection",
      "id": "EkmConnection",
      "type": "object",
      "properties": {
        "connectionState": {
          "description": "Output only. The connection state",
          "readOnly": true,
          "enum": [
            "CONNECTION_STATE_UNSPECIFIED",
            "AVAILABLE",
            "NOT_AVAILABLE",
            "ERROR",
            "PERMISSION_DENIED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified EKM connection state",
            "Available EKM connection state",
            "Not available EKM connection state",
            "Error EKM connection state",
            "Permission denied EKM connection state"
          ]
        },
        "connectionName": {
          "type": "string",
          "description": "Resource name of the EKM connection in the format: projects/{project}/locations/{location}/ekmConnections/{ekm_connection}"
        },
        "connectionError": {
          "description": "The connection error that occurred if any",
          "$ref": "ConnectionError"
        }
      }
    },
    "Instructions": {
      "description": "Instructions to remediate violation",
      "id": "Instructions",
      "type": "object",
      "properties": {
        "consoleInstructions": {
          "description": "Remediation instructions to resolve violation via cloud console",
          "$ref": "Console"
        },
        "gcloudInstructions": {
          "description": "Remediation instructions to resolve violation via gcloud cli",
          "$ref": "Gcloud"
        }
      }
    },
    "Gcloud": {
      "description": "Remediation instructions to resolve violation via gcloud cli",
      "id": "Gcloud",
      "type": "object",
      "properties": {
        "gcloudCommands": {
          "description": "Gcloud command to resolve violation",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "additionalLinks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Additional urls for more information about steps"
        },
        "steps": {
          "description": "Steps to resolve violation via gcloud cli",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "OperationMetadata": {
      "properties": {
        "createTime": {
          "description": "Output only. The time the operation was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Output only. The time the operation finished running.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "requestedCancellation": {
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
          "readOnly": true,
          "type": "boolean"
        },
        "statusMessage": {
          "type": "string",
          "description": "Output only. Human-readable status of the operation, if any.",
          "readOnly": true
        },
        "target": {
          "type": "string",
          "description": "Output only. Server-defined resource path for the target of the operation.",
          "readOnly": true
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "readOnly": true,
          "type": "string"
        },
        "verb": {
          "type": "string",
          "description": "Output only. Name of the verb executed by the operation.",
          "readOnly": true
        }
      },
      "description": "Represents the metadata of the long-running operation.",
      "id": "OperationMetadata",
      "type": "object"
    },
    "AccessReason": {
      "id": "AccessReason",
      "type": "object",
      "description": "Reason for the access.",
      "properties": {
        "detail": {
          "description": "More detail about certain reason types. See comments for each type above.",
          "type": "string"
        },
        "type": {
          "type": "string",
          "description": "Type of access justification.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "CUSTOMER_INITIATED_SUPPORT",
            "GOOGLE_INITIATED_SERVICE",
            "GOOGLE_INITIATED_REVIEW",
            "THIRD_PARTY_DATA_REQUEST",
            "GOOGLE_RESPONSE_TO_PRODUCTION_ALERT",
            "CLOUD_INITIATED_ACCESS"
          ],
          "enumDescriptions": [
            "Default value for proto, shouldn't be used.",
            "Customer made a request or raised an issue that required the principal to access customer data. `detail` is of the form (\"#####\" is the issue ID): - \"Feedback Report: #####\" - \"Case Number: #####\" - \"Case ID: #####\" - \"E-PIN Reference: #####\" - \"Google-#####\" - \"T-#####\"",
            "The principal accessed customer data in order to diagnose or resolve a suspected issue in services. Often this access is used to confirm that customers are not affected by a suspected service issue or to remediate a reversible system issue.",
            "Google initiated service for security, fraud, abuse, or compliance purposes.",
            "The principal was compelled to access customer data in order to respond to a legal third party data request or process, including legal processes from customers themselves.",
            "The principal accessed customer data in order to diagnose or resolve a suspected issue in services or a known outage.",
            "Similar to 'GOOGLE_INITIATED_SERVICE' or 'GOOGLE_INITIATED_REVIEW', but with universe agnostic naming. The principal accessed customer data in order to diagnose or resolve a suspected issue in services or a known outage, or for security, fraud, abuse, or compliance review purposes."
          ]
        }
      }
    },
    "ListCustomersResponse": {
      "properties": {
        "nextPageToken": {
          "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "customers": {
          "type": "array",
          "items": {
            "$ref": "Customer"
          },
          "description": "List of customers"
        }
      },
      "description": "Response message for list customer Customers requests",
      "id": "ListCustomersResponse",
      "type": "object"
    },
    "ListWorkloadsResponse": {
      "properties": {
        "workloads": {
          "type": "array",
          "items": {
            "$ref": "Workload"
          },
          "description": "List of customer workloads"
        },
        "nextPageToken": {
          "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached."
        }
      },
      "id": "ListWorkloadsResponse",
      "type": "object",
      "description": "Response message for list customer workloads requests."
    },
    "Sku": {
      "description": "Represents the SKU a partner owns inside Google Cloud to sell to customers.",
      "id": "Sku",
      "type": "object",
      "properties": {
        "id": {
          "description": "Argentum product SKU, that is associated with the partner offerings to customers used by Syntro for billing purposes. SKUs can represent resold Google products or support services.",
          "type": "string"
        },
        "displayName": {
          "description": "Display name of the product identified by the SKU. A partner may want to show partner branded names for their offerings such as local sovereign cloud solutions.",
          "type": "string"
        }
      }
    },
    "AccessApprovalRequest": {
      "properties": {
        "name": {
          "description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/accessApprovalRequests/{access_approval_request}`",
          "type": "string"
        },
        "requestTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "The time at which approval was requested."
        },
        "requestedExpirationTime": {
          "description": "The requested expiration for the approval. If the request is approved, access will be granted from the time of approval until the expiration time.",
          "type": "string",
          "format": "google-datetime"
        },
        "requestedReason": {
          "description": "The justification for which approval is being requested.",
          "$ref": "AccessReason"
        }
      },
      "id": "AccessApprovalRequest",
      "type": "object",
      "description": "Details about the Access request."
    },
    "CustomerOnboardingState": {
      "id": "CustomerOnboardingState",
      "type": "object",
      "description": "Container for customer onboarding steps",
      "properties": {
        "onboardingSteps": {
          "type": "array",
          "items": {
            "$ref": "CustomerOnboardingStep"
          },
          "description": "List of customer onboarding steps"
        }
      }
    },
    "WorkloadOnboardingStep": {
      "properties": {
        "startTime": {
          "description": "The starting time of the onboarding step.",
          "type": "string",
          "format": "google-datetime"
        },
        "completionTime": {
          "description": "The completion time of the onboarding step.",
          "type": "string",
          "format": "google-datetime"
        },
        "step": {
          "type": "string",
          "description": "The onboarding step.",
          "enum": [
            "STEP_UNSPECIFIED",
            "EKM_PROVISIONED",
            "SIGNED_ACCESS_APPROVAL_CONFIGURED"
          ],
          "enumDescriptions": [
            "Unspecified step.",
            "EKM Provisioned step.",
            "Signed Access Approval step."
          ]
        },
        "completionState": {
          "enumDescriptions": [
            "Unspecified completion state.",
            "Task started (has start date) but not yet completed.",
            "Succeeded state.",
            "Failed state.",
            "Not applicable state."
          ],
          "type": "string",
          "description": "Output only. The completion state of the onboarding step.",
          "readOnly": true,
          "enum": [
            "COMPLETION_STATE_UNSPECIFIED",
            "PENDING",
            "SUCCEEDED",
            "FAILED",
            "NOT_APPLICABLE"
          ]
        }
      },
      "description": "Container for workload onboarding information.",
      "id": "WorkloadOnboardingStep",
      "type": "object"
    },
    "ConnectionError": {
      "id": "ConnectionError",
      "type": "object",
      "description": "Information around the error that occurred if the connection state is anything other than available or unspecified",
      "properties": {
        "errorDomain": {
          "description": "The error domain for the error",
          "type": "string"
        },
        "errorMessage": {
          "description": "The error message for the error",
          "type": "string"
        }
      }
    },
    "CustomerOnboardingStep": {
      "properties": {
        "startTime": {
          "description": "The starting time of the onboarding step",
          "type": "string",
          "format": "google-datetime"
        },
        "completionTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "The completion time of the onboarding step"
        },
        "completionState": {
          "type": "string",
          "description": "Output only. Current state of the step",
          "readOnly": true,
          "enum": [
            "COMPLETION_STATE_UNSPECIFIED",
            "PENDING",
            "SUCCEEDED",
            "FAILED",
            "NOT_APPLICABLE"
          ],
          "enumDescriptions": [
            "Unspecified completion state.",
            "Task started (has start date) but not yet completed.",
            "Succeeded state.",
            "Failed state.",
            "Not applicable state."
          ]
        },
        "step": {
          "description": "The onboarding step",
          "enum": [
            "STEP_UNSPECIFIED",
            "KAJ_ENROLLMENT",
            "CUSTOMER_ENVIRONMENT"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified step",
            "KAJ Enrollment",
            "Customer Environment"
          ]
        }
      },
      "id": "CustomerOnboardingStep",
      "type": "object",
      "description": "Container for customer onboarding information"
    },
    "ListAccessApprovalRequestsResponse": {
      "description": "Response message for list access requests.",
      "id": "ListAccessApprovalRequestsResponse",
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached."
        },
        "accessApprovalRequests": {
          "description": "List of access approval requests",
          "type": "array",
          "items": {
            "$ref": "AccessApprovalRequest"
          }
        }
      }
    },
    "ListViolationsResponse": {
      "id": "ListViolationsResponse",
      "type": "object",
      "description": "Response message for list customer violation requests",
      "properties": {
        "violations": {
          "type": "array",
          "items": {
            "$ref": "Violation"
          },
          "description": "List of violation"
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Workloads that could not be reached due to permission errors or any other error. Ref: https://google.aip.dev/217"
        }
      }
    },
    "EkmMetadata": {
      "id": "EkmMetadata",
      "type": "object",
      "description": "Holds information needed by Mudbray to use partner EKMs for workloads.",
      "properties": {
        "ekmEndpointUri": {
          "description": "Endpoint for sending requests to the EKM for key provisioning during Assured Workload creation.",
          "type": "string"
        },
        "ekmSolution": {
          "description": "The Cloud EKM partner.",
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            true
          ],
          "enum": [
            "EKM_SOLUTION_UNSPECIFIED",
            "FORTANIX",
            "FUTUREX",
            "THALES",
            "VIRTRU"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified EKM solution",
            "EKM Partner Fortanix",
            "EKM Partner FutureX",
            "EKM Partner Thales",
            "This enum value is never used."
          ]
        }
      }
    },
    "Customer": {
      "properties": {
        "displayName": {
          "type": "string",
          "description": "Required. Display name for the customer"
        },
        "organizationDomain": {
          "description": "Output only. The customer organization domain, extracted from CRM Organization’s display_name field. e.g. \"google.com\"",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}`"
        },
        "customerOnboardingState": {
          "description": "Output only. Container for customer onboarding steps",
          "readOnly": true,
          "$ref": "CustomerOnboardingState"
        },
        "isOnboarded": {
          "description": "Output only. Indicates whether a customer is fully onboarded",
          "readOnly": true,
          "type": "boolean"
        }
      },
      "id": "Customer",
      "type": "object",
      "description": "Contains metadata around a Cloud Controls Partner Customer"
    },
    "Partner": {
      "properties": {
        "operatedCloudRegions": {
          "description": "List of Google Cloud regions that the partner sells services to customers. Valid Google Cloud regions found here: https://cloud.google.com/compute/docs/regions-zones",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "name": {
          "type": "string",
          "description": "Identifier. The resource name of the partner. Format: `organizations/{organization}/locations/{location}/partner` Example: \"organizations/123456/locations/us-central1/partner\""
        },
        "ekmSolutions": {
          "description": "List of Google Cloud supported EKM partners supported by the partner",
          "type": "array",
          "items": {
            "$ref": "EkmMetadata"
          }
        },
        "partnerProjectId": {
          "type": "string",
          "description": "Google Cloud project ID in the partner's Google Cloud organization for receiving enhanced Logs for Partners."
        },
        "createTime": {
          "description": "Output only. Time the resource was created",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "skus": {
          "description": "List of SKUs the partner is offering",
          "type": "array",
          "items": {
            "$ref": "Sku"
          }
        },
        "updateTime": {
          "description": "Output only. The last time the resource was updated",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      },
      "id": "Partner",
      "type": "object",
      "description": "Message describing Partner resource"
    },
    "Violation": {
      "id": "Violation",
      "type": "object",
      "description": "Details of resource Violation",
      "properties": {
        "state": {
          "description": "Output only. State of the violation",
          "readOnly": true,
          "enum": [
            "STATE_UNSPECIFIED",
            "RESOLVED",
            "UNRESOLVED",
            "EXCEPTION"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified state.",
            "Violation is resolved.",
            "Violation is Unresolved",
            "Violation is Exception"
          ]
        },
        "description": {
          "type": "string",
          "description": "Output only. Description for the Violation. e.g. OrgPolicy gcp.resourceLocations has non compliant value.",
          "readOnly": true
        },
        "remediation": {
          "description": "Output only. Compliance violation remediation",
          "readOnly": true,
          "$ref": "Remediation"
        },
        "name": {
          "type": "string",
          "description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/violations/{violation}`"
        },
        "nonCompliantOrgPolicy": {
          "type": "string",
          "description": "Output only. Immutable. Name of the OrgPolicy which was modified with non-compliant change and resulted this violation. Format: `projects/{project_number}/policies/{constraint_name}` `folders/{folder_id}/policies/{constraint_name}` `organizations/{organization_id}/policies/{constraint_name}`",
          "readOnly": true
        },
        "folderId": {
          "description": "The folder_id of the violation",
          "type": "string",
          "format": "int64"
        },
        "beginTime": {
          "description": "Output only. Time of the event which triggered the Violation.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The last time when the Violation record was updated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "category": {
          "type": "string",
          "description": "Output only. Category under which this violation is mapped. e.g. Location, Service Usage, Access, Encryption, etc.",
          "readOnly": true
        },
        "resolveTime": {
          "description": "Output only. Time of the event which fixed the Violation. If the violation is ACTIVE this will be empty.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "EkmConnections": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/ekmConnections`"
        },
        "ekmConnections": {
          "description": "The EKM connections associated with the workload",
          "type": "array",
          "items": {
            "$ref": "EkmConnection"
          }
        }
      },
      "description": "The EKM connections associated with a workload",
      "id": "EkmConnections",
      "type": "object"
    },
    "Workload": {
      "properties": {
        "name": {
          "description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}`",
          "type": "string"
        },
        "workloadOnboardingState": {
          "description": "Container for workload onboarding steps.",
          "$ref": "WorkloadOnboardingState"
        },
        "keyManagementProjectId": {
          "type": "string",
          "description": "The project id of the key management project for the workload"
        },
        "location": {
          "type": "string",
          "description": "The Google Cloud location of the workload"
        },
        "isOnboarded": {
          "description": "Indicates whether a workload is fully onboarded.",
          "type": "boolean"
        },
        "folderId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Folder id this workload is associated with",
          "readOnly": true
        },
        "createTime": {
          "description": "Output only. Time the resource was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "folder": {
          "description": "Output only. The name of container folder of the assured workload",
          "readOnly": true,
          "type": "string"
        },
        "partner": {
          "enumDescriptions": [
            "Unknown Partner.",
            "Enum representing S3NS (Thales) partner.",
            "Enum representing T_SYSTEM (TSI) partner.",
            "Enum representing SIA_MINSAIT (Indra) partner.",
            "Enum representing PSN (TIM) partner.",
            "Enum representing CNTXT (Kingdom of Saudi Arabia) partner.",
            "Enum representing CNXT (Kingdom of Saudi Arabia) partner offering without EKM provisioning.",
            "Enum representing Telefonica (Spain) partner."
          ],
          "type": "string",
          "description": "Partner associated with this workload.",
          "enum": [
            "PARTNER_UNSPECIFIED",
            "PARTNER_LOCAL_CONTROLS_BY_S3NS",
            "PARTNER_SOVEREIGN_CONTROLS_BY_T_SYSTEMS",
            "PARTNER_SOVEREIGN_CONTROLS_BY_SIA_MINSAIT",
            "PARTNER_SOVEREIGN_CONTROLS_BY_PSN",
            "PARTNER_SOVEREIGN_CONTROLS_BY_CNTXT",
            "PARTNER_SOVEREIGN_CONTROLS_BY_CNTXT_NO_EKM",
            "PARTNER_SPAIN_DATA_BOUNDARY_BY_TELEFONICA"
          ]
        }
      },
      "id": "Workload",
      "type": "object",
      "description": "Contains metadata around the [Workload resource](https://cloud.google.com/assured-workloads/docs/reference/rest/Shared.Types/Workload) in the Assured Workloads API."
    },
    "PartnerPermissions": {
      "id": "PartnerPermissions",
      "type": "object",
      "description": "The permissions granted to the partner for a workload",
      "properties": {
        "partnerPermissions": {
          "description": "The partner permissions granted for the workload",
          "type": "array",
          "items": {
            "enum": [
              "PERMISSION_UNSPECIFIED",
              "ACCESS_TRANSPARENCY_AND_EMERGENCY_ACCESS_LOGS",
              "ASSURED_WORKLOADS_MONITORING",
              "ACCESS_APPROVAL_REQUESTS",
              "ASSURED_WORKLOADS_EKM_CONNECTION_STATUS",
              "ACCESS_TRANSPARENCY_LOGS_SUPPORT_CASE_VIEWER"
            ],
            "type": "string",
            "enumDescriptions": [
              "Unspecified partner permission",
              "Permission for Access Transparency and emergency logs",
              "Permission for Assured Workloads monitoring violations",
              "Permission for Access Approval requests",
              "Permission for External Key Manager connection status",
              "Permission for support case details for Access Transparency log entries"
            ]
          }
        },
        "name": {
          "description": "Identifier. Format: `organizations/{organization}/locations/{location}/customers/{customer}/workloads/{workload}/partnerPermissions`",
          "type": "string"
        }
      }
    },
    "Remediation": {
      "description": "Represents remediation guidance to resolve compliance violation for AssuredWorkload",
      "id": "Remediation",
      "type": "object",
      "properties": {
        "instructions": {
          "description": "Required. Remediation instructions to resolve violations",
          "$ref": "Instructions"
        },
        "compliantValues": {
          "description": "Values that can resolve the violation For example: for list org policy violations, this will either be the list of allowed or denied values",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "remediationType": {
          "type": "string",
          "description": "Output only. Remediation type based on the type of org policy values violated",
          "readOnly": true,
          "enum": [
            "REMEDIATION_TYPE_UNSPECIFIED",
            "REMEDIATION_BOOLEAN_ORG_POLICY_VIOLATION",
            "REMEDIATION_LIST_ALLOWED_VALUES_ORG_POLICY_VIOLATION",
            "REMEDIATION_LIST_DENIED_VALUES_ORG_POLICY_VIOLATION",
            "REMEDIATION_RESTRICT_CMEK_CRYPTO_KEY_PROJECTS_ORG_POLICY_VIOLATION",
            "REMEDIATION_RESOURCE_VIOLATION"
          ],
          "enumDescriptions": [
            "Unspecified remediation type",
            "Remediation type for boolean org policy",
            "Remediation type for list org policy which have allowed values in the monitoring rule",
            "Remediation type for list org policy which have denied values in the monitoring rule",
            "Remediation type for gcp.restrictCmekCryptoKeyProjects",
            "Remediation type for resource violation."
          ]
        }
      }
    }
  },
  "description": "Provides insights about your customers and their Assured Workloads based on your Sovereign Controls by Partners offering."
}
