{
  "name": "migrationcenter",
  "discoveryVersion": "v1",
  "basePath": "",
  "batchPath": "batch",
  "documentationLink": "https://cloud.google.com/migration-center",
  "baseUrl": "https://migrationcenter.googleapis.com/",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "getSettings": {
              "id": "migrationcenter.projects.locations.getSettings",
              "parameters": {
                "name": {
                  "description": "Required. Name of the resource.",
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^projects/[^/]+/locations/[^/]+/settings$"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/settings",
              "path": "v1/{+name}",
              "description": "Gets the details of regional settings.",
              "response": {
                "$ref": "Settings"
              },
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ]
            },
            "list": {
              "parameterOrder": [
                "name"
              ],
              "httpMethod": "GET",
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "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.",
              "path": "v1/{+name}/locations",
              "flatPath": "v1/projects/{projectsId}/locations",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameters": {
                "extraLocationTypes": {
                  "location": "query",
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage.",
                  "repeated": true,
                  "type": "string"
                },
                "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).",
                  "type": "string",
                  "location": "query"
                },
                "name": {
                  "location": "path",
                  "required": true,
                  "description": "The resource that owns the locations collection, if applicable.",
                  "pattern": "^projects/[^/]+$",
                  "type": "string"
                },
                "pageSize": {
                  "location": "query",
                  "format": "int32",
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "type": "integer"
                },
                "pageToken": {
                  "location": "query",
                  "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
                  "type": "string"
                }
              },
              "id": "migrationcenter.projects.locations.list"
            },
            "get": {
              "path": "v1/{+name}",
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}",
              "description": "Gets information about a location.",
              "parameters": {
                "name": {
                  "type": "string",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "description": "Resource name for the location.",
                  "required": true,
                  "location": "path"
                }
              },
              "id": "migrationcenter.projects.locations.get",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Location"
              }
            },
            "updateSettings": {
              "request": {
                "$ref": "Settings"
              },
              "response": {
                "$ref": "Operation"
              },
              "httpMethod": "PATCH",
              "parameterOrder": [
                "name"
              ],
              "id": "migrationcenter.projects.locations.updateSettings",
              "parameters": {
                "updateMask": {
                  "format": "google-fieldmask",
                  "location": "query",
                  "type": "string",
                  "description": "Required. Field mask is used to specify the fields to be overwritten in the `Settings` resource by the update. The values specified in the `update_mask` field are relative to the resource, not the full request. A field will be overwritten if it is in the mask. A single * value in the mask lets you to overwrite all fields."
                },
                "name": {
                  "pattern": "^projects/[^/]+/locations/[^/]+/settings$",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "description": "Output only. The name of the resource."
                },
                "requestId": {
                  "type": "string",
                  "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                  "location": "query"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/settings",
              "path": "v1/{+name}",
              "description": "Updates the regional-level project settings."
            }
          },
          "resources": {
            "assets": {
              "methods": {
                "get": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "view": {
                      "location": "query",
                      "enumDescriptions": [
                        "The asset view is not specified. The API displays the basic view by default.",
                        "The asset view includes only basic metadata of the asset.",
                        "The asset view includes all the metadata of an asset and performance data.",
                        "The asset view includes the standard metadata of an asset.",
                        "The asset view includes fields needed by UI.",
                        "The asset view includes asset name and labels."
                      ],
                      "enum": [
                        "ASSET_VIEW_UNSPECIFIED",
                        "ASSET_VIEW_BASIC",
                        "ASSET_VIEW_FULL",
                        "ASSET_VIEW_STANDARD",
                        "ASSET_VIEW_UI",
                        "ASSET_VIEW_LABELS"
                      ],
                      "description": "View of the assets. Defaults to BASIC.",
                      "type": "string"
                    },
                    "name": {
                      "required": true,
                      "location": "path",
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/assets/[^/]+$",
                      "type": "string"
                    }
                  },
                  "id": "migrationcenter.projects.locations.assets.get",
                  "description": "Gets the details of an asset.",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/assets/{assetsId}",
                  "response": {
                    "$ref": "Asset"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "GET"
                },
                "delete": {
                  "parameters": {
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    },
                    "name": {
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/assets/[^/]+$"
                    }
                  },
                  "id": "migrationcenter.projects.locations.assets.delete",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/assets/{assetsId}",
                  "description": "Deletes an asset.",
                  "response": {
                    "$ref": "Empty"
                  },
                  "httpMethod": "DELETE",
                  "parameterOrder": [
                    "name"
                  ]
                },
                "batchUpdate": {
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "BatchUpdateAssetsRequest"
                  },
                  "response": {
                    "$ref": "BatchUpdateAssetsResponse"
                  },
                  "path": "v1/{+parent}/assets:batchUpdate",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/assets:batchUpdate",
                  "description": "Updates the parameters of a list of assets.",
                  "parameters": {
                    "parent": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "description": "Required. Parent value for batch asset update.",
                      "location": "path",
                      "required": true
                    }
                  },
                  "id": "migrationcenter.projects.locations.assets.batchUpdate",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "id": "migrationcenter.projects.locations.assets.list",
                  "parameters": {
                    "showHidden": {
                      "location": "query",
                      "description": "Optional. When this value is set to 'true,' the response will include all assets, including those that are hidden.",
                      "type": "boolean"
                    },
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "required": true,
                      "location": "path",
                      "description": "Required. Parent value for `ListAssetsRequest`."
                    },
                    "filter": {
                      "location": "query",
                      "type": "string",
                      "description": "Filtering results."
                    },
                    "orderBy": {
                      "location": "query",
                      "type": "string",
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details."
                    },
                    "view": {
                      "type": "string",
                      "description": "View of the assets. Defaults to BASIC.",
                      "location": "query",
                      "enumDescriptions": [
                        "The asset view is not specified. The API displays the basic view by default.",
                        "The asset view includes only basic metadata of the asset.",
                        "The asset view includes all the metadata of an asset and performance data.",
                        "The asset view includes the standard metadata of an asset.",
                        "The asset view includes fields needed by UI.",
                        "The asset view includes asset name and labels."
                      ],
                      "enum": [
                        "ASSET_VIEW_UNSPECIFIED",
                        "ASSET_VIEW_BASIC",
                        "ASSET_VIEW_FULL",
                        "ASSET_VIEW_STANDARD",
                        "ASSET_VIEW_UI",
                        "ASSET_VIEW_LABELS"
                      ]
                    },
                    "pageSize": {
                      "format": "int32",
                      "location": "query",
                      "type": "integer",
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default."
                    },
                    "pageToken": {
                      "type": "string",
                      "description": "A token identifying a page of results the server should return.",
                      "location": "query"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/assets",
                  "path": "v1/{+parent}/assets",
                  "description": "Lists all the assets in a given project and location.",
                  "response": {
                    "$ref": "ListAssetsResponse"
                  },
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "parent"
                  ]
                },
                "reportAssetFrames": {
                  "request": {
                    "$ref": "Frames"
                  },
                  "response": {
                    "$ref": "ReportAssetFramesResponse"
                  },
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "source": {
                      "description": "Required. Reference to a source.",
                      "type": "string",
                      "location": "query"
                    },
                    "parent": {
                      "required": true,
                      "location": "path",
                      "description": "Required. Parent of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string"
                    }
                  },
                  "id": "migrationcenter.projects.locations.assets.reportAssetFrames",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+parent}/assets:reportAssetFrames",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/assets:reportAssetFrames",
                  "description": "Reports a set of frames."
                },
                "patch": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/assets/{assetsId}",
                  "path": "v1/{+name}",
                  "description": "Updates the parameters of an asset.",
                  "id": "migrationcenter.projects.locations.assets.patch",
                  "parameters": {
                    "updateMask": {
                      "location": "query",
                      "format": "google-fieldmask",
                      "description": "Required. Field mask is used to specify the fields to be overwritten in the `Asset` resource by the update. The values specified in the `update_mask` field are relative to the resource, not the full request. A field will be overwritten if it is in the mask. A single * value in the mask lets you to overwrite all fields.",
                      "type": "string"
                    },
                    "requestId": {
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string",
                      "location": "query"
                    },
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/assets/[^/]+$",
                      "type": "string",
                      "required": true,
                      "location": "path",
                      "description": "Output only. The full name of the asset."
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "PATCH",
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "Asset"
                  },
                  "response": {
                    "$ref": "Asset"
                  }
                },
                "batchDelete": {
                  "id": "migrationcenter.projects.locations.assets.batchDelete",
                  "parameters": {
                    "parent": {
                      "required": true,
                      "location": "path",
                      "description": "Required. Parent value for batch asset delete.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/assets:batchDelete",
                  "path": "v1/{+parent}/assets:batchDelete",
                  "description": "Deletes list of Assets.",
                  "request": {
                    "$ref": "BatchDeleteAssetsRequest"
                  },
                  "response": {
                    "$ref": "Empty"
                  },
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "parent"
                  ]
                },
                "aggregateValues": {
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "AggregateAssetsValuesRequest"
                  },
                  "response": {
                    "$ref": "AggregateAssetsValuesResponse"
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/assets:aggregateValues",
                  "path": "v1/{+parent}/assets:aggregateValues",
                  "description": "Aggregates the requested fields based on provided function.",
                  "id": "migrationcenter.projects.locations.assets.aggregateValues",
                  "parameters": {
                    "parent": {
                      "description": "Required. Parent value for `AggregateAssetsValuesRequest`.",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              }
            },
            "sources": {
              "methods": {
                "get": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.sources.get",
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+$"
                    }
                  },
                  "description": "Gets the details of a source.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}",
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "Source"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "GET"
                },
                "delete": {
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "DELETE",
                  "response": {
                    "$ref": "Operation"
                  },
                  "description": "Deletes a source.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}",
                  "path": "v1/{+name}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.sources.delete",
                  "parameters": {
                    "requestId": {
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string",
                      "location": "query"
                    },
                    "name": {
                      "description": "Required. Name of the resource.",
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+$"
                    }
                  }
                },
                "create": {
                  "id": "migrationcenter.projects.locations.sources.create",
                  "parameters": {
                    "requestId": {
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string",
                      "location": "query"
                    },
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true,
                      "description": "Required. Value for parent."
                    },
                    "sourceId": {
                      "location": "query",
                      "description": "Required. User specified ID for the source. It will become the last component of the source name. The ID must be unique within the project, must conform with RFC-1034, is restricted to lower-cased letters, and has a maximum length of 63 characters. The ID must match the regular expression: `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.",
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sources",
                  "path": "v1/{+parent}/sources",
                  "description": "Creates a new source in a given project and location.",
                  "request": {
                    "$ref": "Source"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "parent"
                  ]
                },
                "patch": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "updateMask": {
                      "format": "google-fieldmask",
                      "location": "query",
                      "type": "string",
                      "description": "Required. Field mask is used to specify the fields to be overwritten in the `Source` resource by the update. The values specified in the `update_mask` field are relative to the resource, not the full request. A field will be overwritten if it is in the mask. A single * value in the mask lets you to overwrite all fields."
                    },
                    "name": {
                      "location": "path",
                      "required": true,
                      "description": "Output only. The full name of the source.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+$",
                      "type": "string"
                    },
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    }
                  },
                  "id": "migrationcenter.projects.locations.sources.patch",
                  "description": "Updates the parameters of a source.",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "Source"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "PATCH"
                },
                "list": {
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "parent"
                  ],
                  "response": {
                    "$ref": "ListSourcesResponse"
                  },
                  "path": "v1/{+parent}/sources",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sources",
                  "description": "Lists all the sources in a given project and location.",
                  "parameters": {
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true,
                      "description": "Required. Parent value for `ListSourcesRequest`."
                    },
                    "filter": {
                      "location": "query",
                      "type": "string",
                      "description": "Filtering results."
                    },
                    "pageSize": {
                      "format": "int32",
                      "location": "query",
                      "type": "integer",
                      "description": "Requested page size. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default value."
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "A token identifying a page of results that the server should return.",
                      "type": "string"
                    },
                    "orderBy": {
                      "type": "string",
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "location": "query"
                    }
                  },
                  "id": "migrationcenter.projects.locations.sources.list",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              },
              "resources": {
                "errorFrames": {
                  "methods": {
                    "list": {
                      "response": {
                        "$ref": "ListErrorFramesResponse"
                      },
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "parent"
                      ],
                      "parameters": {
                        "view": {
                          "enum": [
                            "ERROR_FRAME_VIEW_UNSPECIFIED",
                            "ERROR_FRAME_VIEW_BASIC",
                            "ERROR_FRAME_VIEW_FULL"
                          ],
                          "location": "query",
                          "enumDescriptions": [
                            "Value is unset. The system will fallback to the default value.",
                            "Include basic frame data, but not the full contents.",
                            "Include everything."
                          ],
                          "description": "Optional. An optional view mode to control the level of details of each error frame. The default is a BASIC frame view.",
                          "type": "string"
                        },
                        "parent": {
                          "description": "Required. Parent value (the source) for `ListErrorFramesRequest`.",
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+$"
                        },
                        "pageSize": {
                          "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                          "type": "integer",
                          "location": "query",
                          "format": "int32"
                        },
                        "pageToken": {
                          "location": "query",
                          "description": "A token identifying a page of results the server should return.",
                          "type": "string"
                        }
                      },
                      "id": "migrationcenter.projects.locations.sources.errorFrames.list",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "path": "v1/{+parent}/errorFrames",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}/errorFrames",
                      "description": "Lists all error frames in a given source and location."
                    },
                    "get": {
                      "response": {
                        "$ref": "ErrorFrame"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "httpMethod": "GET",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "migrationcenter.projects.locations.sources.errorFrames.get",
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+/errorFrames/[^/]+$",
                          "type": "string",
                          "location": "path",
                          "required": true,
                          "description": "Required. The name of the frame to retrieve. Format: projects/{project}/locations/{location}/sources/{source}/errorFrames/{error_frame}"
                        },
                        "view": {
                          "description": "Optional. An optional view mode to control the level of details for the frame. The default is a basic frame view.",
                          "enum": [
                            "ERROR_FRAME_VIEW_UNSPECIFIED",
                            "ERROR_FRAME_VIEW_BASIC",
                            "ERROR_FRAME_VIEW_FULL"
                          ],
                          "location": "query",
                          "enumDescriptions": [
                            "Value is unset. The system will fallback to the default value.",
                            "Include basic frame data, but not the full contents.",
                            "Include everything."
                          ],
                          "type": "string"
                        }
                      },
                      "description": "Gets the details of an error frame.",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}/errorFrames/{errorFramesId}",
                      "path": "v1/{+name}"
                    }
                  }
                }
              }
            },
            "importJobs": {
              "methods": {
                "list": {
                  "response": {
                    "$ref": "ListImportJobsResponse"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "GET",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.importJobs.list",
                  "parameters": {
                    "orderBy": {
                      "type": "string",
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "location": "query"
                    },
                    "view": {
                      "type": "string",
                      "description": "Optional. The level of details of each import job. Default value is BASIC.",
                      "location": "query",
                      "enumDescriptions": [
                        "The import job view is not specified. The API displays the basic view by default.",
                        "The import job view includes basic metadata of an import job. This view does not include payload information.",
                        "The import job view includes all metadata of an import job."
                      ],
                      "enum": [
                        "IMPORT_JOB_VIEW_UNSPECIFIED",
                        "IMPORT_JOB_VIEW_BASIC",
                        "IMPORT_JOB_VIEW_FULL"
                      ]
                    },
                    "pageSize": {
                      "type": "integer",
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "format": "int32",
                      "location": "query"
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "A token identifying a page of results the server should return.",
                      "type": "string"
                    },
                    "parent": {
                      "required": true,
                      "location": "path",
                      "description": "Required. Parent value for `ListImportJobsRequest`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string"
                    },
                    "filter": {
                      "description": "Filtering results.",
                      "type": "string",
                      "location": "query"
                    }
                  },
                  "description": "Lists all import jobs.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/importJobs",
                  "path": "v1/{+parent}/importJobs"
                },
                "create": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    },
                    "parent": {
                      "location": "path",
                      "required": true,
                      "description": "Required. Value for parent.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string"
                    },
                    "importJobId": {
                      "location": "query",
                      "description": "Required. ID of the import job.",
                      "type": "string"
                    }
                  },
                  "id": "migrationcenter.projects.locations.importJobs.create",
                  "description": "Creates an import job.",
                  "path": "v1/{+parent}/importJobs",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/importJobs",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "ImportJob"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "POST"
                },
                "patch": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "updateMask": {
                      "location": "query",
                      "format": "google-fieldmask",
                      "description": "Required. Field mask is used to specify the fields to be overwritten in the `Asset` resource by the update. The values specified in the `update_mask` field are relative to the resource, not the full request. A field will be overwritten if it is in the mask. A single * value in the mask lets you to overwrite all fields.",
                      "type": "string"
                    },
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    },
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true,
                      "description": "Output only. The full name of the import job."
                    }
                  },
                  "id": "migrationcenter.projects.locations.importJobs.patch",
                  "description": "Updates an import job.",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "ImportJob"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "PATCH"
                },
                "run": {
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "RunImportJobRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "path": "v1/{+name}:run",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}:run",
                  "description": "Runs an import job.",
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "type": "string",
                      "required": true,
                      "location": "path",
                      "description": "Required. The name of the import job to run."
                    }
                  },
                  "id": "migrationcenter.projects.locations.importJobs.run",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "response": {
                    "$ref": "ImportJob"
                  },
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource.",
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$"
                    },
                    "view": {
                      "type": "string",
                      "description": "Optional. The level of details of the import job. Default value is FULL.",
                      "location": "query",
                      "enumDescriptions": [
                        "The import job view is not specified. The API displays the basic view by default.",
                        "The import job view includes basic metadata of an import job. This view does not include payload information.",
                        "The import job view includes all metadata of an import job."
                      ],
                      "enum": [
                        "IMPORT_JOB_VIEW_UNSPECIFIED",
                        "IMPORT_JOB_VIEW_BASIC",
                        "IMPORT_JOB_VIEW_FULL"
                      ]
                    }
                  },
                  "id": "migrationcenter.projects.locations.importJobs.get",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}",
                  "description": "Gets the details of an import job."
                },
                "delete": {
                  "response": {
                    "$ref": "Operation"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "DELETE",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.importJobs.delete",
                  "parameters": {
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "required": true
                    },
                    "force": {
                      "description": "Optional. If set to `true`, any `ImportDataFiles` of this job will also be deleted If set to `false`, the request only works if the job has no data files.",
                      "type": "boolean",
                      "location": "query"
                    }
                  },
                  "description": "Deletes an import job.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}",
                  "path": "v1/{+name}"
                },
                "validate": {
                  "description": "Validates an import job.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}:validate",
                  "path": "v1/{+name}:validate",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.importJobs.validate",
                  "parameters": {
                    "name": {
                      "required": true,
                      "location": "path",
                      "description": "Required. The name of the import job to validate.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "ValidateImportJobRequest"
                  }
                }
              },
              "resources": {
                "importDataFiles": {
                  "methods": {
                    "get": {
                      "parameters": {
                        "name": {
                          "description": "Required. Name of the ImportDataFile.",
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+/importDataFiles/[^/]+$"
                        }
                      },
                      "id": "migrationcenter.projects.locations.importJobs.importDataFiles.get",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "path": "v1/{+name}",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}/importDataFiles/{importDataFilesId}",
                      "description": "Gets an import data file.",
                      "response": {
                        "$ref": "ImportDataFile"
                      },
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "name"
                      ]
                    },
                    "list": {
                      "id": "migrationcenter.projects.locations.importJobs.importDataFiles.list",
                      "parameters": {
                        "pageSize": {
                          "description": "The maximum number of data files to return. The service may return fewer than this value. If unspecified, at most 500 data files will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.",
                          "type": "integer",
                          "location": "query",
                          "format": "int32"
                        },
                        "pageToken": {
                          "type": "string",
                          "description": "A page token, received from a previous `ListImportDataFiles` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListImportDataFiles` must match the call that provided the page token.",
                          "location": "query"
                        },
                        "orderBy": {
                          "location": "query",
                          "type": "string",
                          "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details."
                        },
                        "parent": {
                          "description": "Required. Name of the parent of the `ImportDataFiles` resource.",
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$"
                        },
                        "filter": {
                          "location": "query",
                          "description": "Filtering results.",
                          "type": "string"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}/importDataFiles",
                      "path": "v1/{+parent}/importDataFiles",
                      "description": "List import data files.",
                      "response": {
                        "$ref": "ListImportDataFilesResponse"
                      },
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "parent"
                      ]
                    },
                    "delete": {
                      "response": {
                        "$ref": "Operation"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "httpMethod": "DELETE",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "migrationcenter.projects.locations.importJobs.importDataFiles.delete",
                      "parameters": {
                        "requestId": {
                          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                          "type": "string",
                          "location": "query"
                        },
                        "name": {
                          "required": true,
                          "location": "path",
                          "description": "Required. Name of the ImportDataFile to delete.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+/importDataFiles/[^/]+$",
                          "type": "string"
                        }
                      },
                      "description": "Delete an import data file.",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}/importDataFiles/{importDataFilesId}",
                      "path": "v1/{+name}"
                    },
                    "create": {
                      "id": "migrationcenter.projects.locations.importJobs.importDataFiles.create",
                      "parameters": {
                        "importDataFileId": {
                          "location": "query",
                          "type": "string",
                          "description": "Required. The ID of the new data file."
                        },
                        "requestId": {
                          "location": "query",
                          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                          "type": "string"
                        },
                        "parent": {
                          "location": "path",
                          "required": true,
                          "description": "Required. Name of the parent of the ImportDataFile.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                          "type": "string"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}/importDataFiles",
                      "path": "v1/{+parent}/importDataFiles",
                      "description": "Creates an import data file.",
                      "request": {
                        "$ref": "ImportDataFile"
                      },
                      "response": {
                        "$ref": "Operation"
                      },
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "parent"
                      ]
                    }
                  }
                }
              }
            },
            "preferenceSets": {
              "methods": {
                "create": {
                  "description": "Creates a new preference set in a given project and location.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/preferenceSets",
                  "path": "v1/{+parent}/preferenceSets",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.preferenceSets.create",
                  "parameters": {
                    "preferenceSetId": {
                      "location": "query",
                      "type": "string",
                      "description": "Required. User specified ID for the preference set. It will become the last component of the preference set name. The ID must be unique within the project, must conform with RFC-1034, is restricted to lower-cased letters, and has a maximum length of 63 characters. The ID must match the regular expression `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`."
                    },
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    },
                    "parent": {
                      "required": true,
                      "location": "path",
                      "description": "Required. Value for parent.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "PreferenceSet"
                  }
                },
                "patch": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Output only. Name of the preference set.",
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/preferenceSets/[^/]+$"
                    },
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    },
                    "updateMask": {
                      "type": "string",
                      "description": "Required. Field mask is used to specify the fields to be overwritten in the `PreferenceSet` resource by the update. The values specified in the `update_mask` field are relative to the resource, not the full request. A field will be overwritten if it is in the mask. A single * value in the mask lets you to overwrite all fields.",
                      "format": "google-fieldmask",
                      "location": "query"
                    }
                  },
                  "id": "migrationcenter.projects.locations.preferenceSets.patch",
                  "description": "Updates the parameters of a preference set.",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/preferenceSets/{preferenceSetsId}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "PreferenceSet"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "PATCH"
                },
                "list": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.preferenceSets.list",
                  "parameters": {
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true,
                      "description": "Required. Parent value for `ListPreferenceSetsRequest`."
                    },
                    "pageSize": {
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, at most 500 preference sets will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.",
                      "type": "integer",
                      "location": "query",
                      "format": "int32"
                    },
                    "pageToken": {
                      "type": "string",
                      "description": "A token identifying a page of results the server should return.",
                      "location": "query"
                    },
                    "orderBy": {
                      "location": "query",
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "type": "string"
                    }
                  },
                  "description": "Lists all the preference sets in a given project and location.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/preferenceSets",
                  "path": "v1/{+parent}/preferenceSets",
                  "response": {
                    "$ref": "ListPreferenceSetsResponse"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "GET"
                },
                "get": {
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "PreferenceSet"
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/preferenceSets/{preferenceSetsId}",
                  "path": "v1/{+name}",
                  "description": "Gets the details of a preference set.",
                  "id": "migrationcenter.projects.locations.preferenceSets.get",
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/preferenceSets/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true,
                      "description": "Required. Name of the resource."
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "delete": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/preferenceSets/{preferenceSetsId}",
                  "path": "v1/{+name}",
                  "description": "Deletes a preference set.",
                  "id": "migrationcenter.projects.locations.preferenceSets.delete",
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/preferenceSets/[^/]+$",
                      "type": "string",
                      "required": true,
                      "location": "path",
                      "description": "Required. Name of the group resource."
                    },
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "DELETE",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Operation"
                  }
                }
              }
            },
            "reportConfigs": {
              "methods": {
                "get": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "location": "path",
                      "required": true,
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                      "type": "string"
                    }
                  },
                  "id": "migrationcenter.projects.locations.reportConfigs.get",
                  "description": "Gets details of a single ReportConfig.",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}",
                  "response": {
                    "$ref": "ReportConfig"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "GET"
                },
                "list": {
                  "response": {
                    "$ref": "ListReportConfigsResponse"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "GET",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.reportConfigs.list",
                  "parameters": {
                    "parent": {
                      "description": "Required. Parent value for `ListReportConfigsRequest`.",
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$"
                    },
                    "filter": {
                      "location": "query",
                      "type": "string",
                      "description": "Filtering results."
                    },
                    "pageSize": {
                      "type": "integer",
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "format": "int32",
                      "location": "query"
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "A token identifying a page of results the server should return.",
                      "type": "string"
                    },
                    "orderBy": {
                      "location": "query",
                      "type": "string",
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details."
                    }
                  },
                  "description": "Lists ReportConfigs in a given project and location.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs",
                  "path": "v1/{+parent}/reportConfigs"
                },
                "delete": {
                  "description": "Deletes a ReportConfig.",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "required": true
                    },
                    "force": {
                      "description": "Optional. If set to `true`, any child `Reports` of this entity will also be deleted. If set to `false`, the request only works if the resource has no children.",
                      "type": "boolean",
                      "location": "query"
                    }
                  },
                  "id": "migrationcenter.projects.locations.reportConfigs.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "DELETE",
                  "response": {
                    "$ref": "Operation"
                  }
                },
                "create": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.reportConfigs.create",
                  "parameters": {
                    "reportConfigId": {
                      "description": "Required. User specified ID for the report config. It will become the last component of the report config name. The ID must be unique within the project, must conform with RFC-1034, is restricted to lower-cased letters, and has a maximum length of 63 characters. The ID must match the regular expression: [a-z]([a-z0-9-]{0,61}[a-z0-9])?.",
                      "type": "string",
                      "location": "query"
                    },
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    },
                    "parent": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "description": "Required. Value for parent.",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "description": "Creates a report configuration.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs",
                  "path": "v1/{+parent}/reportConfigs",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "ReportConfig"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "POST"
                }
              },
              "resources": {
                "reports": {
                  "methods": {
                    "create": {
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reports",
                      "path": "v1/{+parent}/reports",
                      "description": "Creates a report.",
                      "id": "migrationcenter.projects.locations.reportConfigs.reports.create",
                      "parameters": {
                        "parent": {
                          "required": true,
                          "location": "path",
                          "description": "Required. Value for parent.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                          "type": "string"
                        },
                        "requestId": {
                          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                          "type": "string",
                          "location": "query"
                        },
                        "reportId": {
                          "location": "query",
                          "type": "string",
                          "description": "Required. User specified id for the report. It will become the last component of the report name. The id must be unique within the project, must conform with RFC-1034, is restricted to lower-cased letters, and has a maximum length of 63 characters. The id must match the regular expression: [a-z]([a-z0-9-]{0,61}[a-z0-9])?."
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "parent"
                      ],
                      "request": {
                        "$ref": "Report"
                      },
                      "response": {
                        "$ref": "Operation"
                      }
                    },
                    "get": {
                      "parameterOrder": [
                        "name"
                      ],
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "Report"
                      },
                      "description": "Gets details of a single Report.",
                      "path": "v1/{+name}",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reports/{reportsId}",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "name": {
                          "description": "Required. Name of the resource.",
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+/reports/[^/]+$"
                        },
                        "view": {
                          "type": "string",
                          "description": "Determines what information to retrieve for the Report.",
                          "location": "query",
                          "enumDescriptions": [
                            "The report view is not specified. The API displays the basic view by default.",
                            "The report view includes only basic metadata of the Report. Useful for list views.",
                            "The report view includes all the metadata of the Report. Useful for preview.",
                            "The report view includes the standard metadata of an report. Useful for detail view."
                          ],
                          "enum": [
                            "REPORT_VIEW_UNSPECIFIED",
                            "REPORT_VIEW_BASIC",
                            "REPORT_VIEW_FULL",
                            "REPORT_VIEW_STANDARD"
                          ]
                        }
                      },
                      "id": "migrationcenter.projects.locations.reportConfigs.reports.get"
                    },
                    "list": {
                      "description": "Lists Reports in a given ReportConfig.",
                      "path": "v1/{+parent}/reports",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reports",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "pageSize": {
                          "type": "integer",
                          "description": "Requested page size. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default value.",
                          "format": "int32",
                          "location": "query"
                        },
                        "pageToken": {
                          "location": "query",
                          "description": "A token identifying a page of results that the server should return.",
                          "type": "string"
                        },
                        "view": {
                          "type": "string",
                          "location": "query",
                          "enumDescriptions": [
                            "The report view is not specified. The API displays the basic view by default.",
                            "The report view includes only basic metadata of the Report. Useful for list views.",
                            "The report view includes all the metadata of the Report. Useful for preview.",
                            "The report view includes the standard metadata of an report. Useful for detail view."
                          ],
                          "enum": [
                            "REPORT_VIEW_UNSPECIFIED",
                            "REPORT_VIEW_BASIC",
                            "REPORT_VIEW_FULL",
                            "REPORT_VIEW_STANDARD"
                          ],
                          "description": "Determines what information to retrieve for each Report."
                        },
                        "orderBy": {
                          "location": "query",
                          "type": "string",
                          "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details."
                        },
                        "parent": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                          "type": "string",
                          "location": "path",
                          "required": true,
                          "description": "Required. Parent value for `ListReportsRequest`."
                        },
                        "filter": {
                          "type": "string",
                          "description": "Filtering results.",
                          "location": "query"
                        }
                      },
                      "id": "migrationcenter.projects.locations.reportConfigs.reports.list",
                      "parameterOrder": [
                        "parent"
                      ],
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "ListReportsResponse"
                      }
                    },
                    "delete": {
                      "httpMethod": "DELETE",
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "Operation"
                      },
                      "path": "v1/{+name}",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reports/{reportsId}",
                      "description": "Deletes a Report.",
                      "parameters": {
                        "name": {
                          "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+/reports/[^/]+$",
                          "type": "string",
                          "required": true,
                          "location": "path",
                          "description": "Required. Name of the resource."
                        },
                        "requestId": {
                          "location": "query",
                          "type": "string",
                          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
                        }
                      },
                      "id": "migrationcenter.projects.locations.reportConfigs.reports.delete",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    }
                  }
                }
              }
            },
            "relations": {
              "methods": {
                "get": {
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Relation"
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/relations/{relationsId}",
                  "path": "v1/{+name}",
                  "description": "Gets the details of an relation.",
                  "id": "migrationcenter.projects.locations.relations.get",
                  "parameters": {
                    "name": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/relations/[^/]+$",
                      "description": "Required. Name of the resource.",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "response": {
                    "$ref": "ListRelationsResponse"
                  },
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "required": true,
                      "location": "path",
                      "description": "Required. Parent value for `ListRelationsRequest`."
                    },
                    "filter": {
                      "location": "query",
                      "type": "string",
                      "description": "Optional. Filtering results."
                    },
                    "orderBy": {
                      "location": "query",
                      "type": "string",
                      "description": "Optional. Field to sort by. See https://google.aip.dev/132#ordering for more details."
                    },
                    "pageSize": {
                      "location": "query",
                      "format": "int32",
                      "description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "type": "integer"
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "Optional. A token identifying a page of results the server should return.",
                      "type": "string"
                    }
                  },
                  "id": "migrationcenter.projects.locations.relations.list",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+parent}/relations",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/relations",
                  "description": "Lists all the relations in a given project and location."
                }
              }
            },
            "discoveryClients": {
              "methods": {
                "sendHeartbeat": {
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "SendDiscoveryClientHeartbeatRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "path": "v1/{+name}:sendHeartbeat",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/discoveryClients/{discoveryClientsId}:sendHeartbeat",
                  "description": "Sends a discovery client heartbeat. Healthy clients are expected to send heartbeats regularly (normally every few minutes).",
                  "parameters": {
                    "name": {
                      "description": "Required. The discovery client name.",
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/discoveryClients/[^/]+$"
                    }
                  },
                  "id": "migrationcenter.projects.locations.discoveryClients.sendHeartbeat",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "description": "Gets the details of a discovery client.",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/discoveryClients/{discoveryClientsId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "required": true,
                      "location": "path",
                      "description": "Required. The discovery client name.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/discoveryClients/[^/]+$",
                      "type": "string"
                    }
                  },
                  "id": "migrationcenter.projects.locations.discoveryClients.get",
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "DiscoveryClient"
                  }
                },
                "delete": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/discoveryClients/{discoveryClientsId}",
                  "path": "v1/{+name}",
                  "description": "Deletes a discovery client.",
                  "id": "migrationcenter.projects.locations.discoveryClients.delete",
                  "parameters": {
                    "requestId": {
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string",
                      "location": "query"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/discoveryClients/[^/]+$",
                      "description": "Required. The discovery client name.",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "DELETE",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Operation"
                  }
                },
                "create": {
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "DiscoveryClient"
                  },
                  "description": "Creates a new discovery client.",
                  "path": "v1/{+parent}/discoveryClients",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/discoveryClients",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "parent": {
                      "required": true,
                      "location": "path",
                      "description": "Required. Parent resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string"
                    },
                    "discoveryClientId": {
                      "description": "Required. User specified ID for the discovery client. It will become the last component of the discovery client name. The ID must be unique within the project, is restricted to lower-cased letters and has a maximum length of 63 characters. The ID must match the regular expression: `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.",
                      "type": "string",
                      "location": "query"
                    },
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    }
                  },
                  "id": "migrationcenter.projects.locations.discoveryClients.create"
                },
                "patch": {
                  "request": {
                    "$ref": "DiscoveryClient"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "httpMethod": "PATCH",
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "migrationcenter.projects.locations.discoveryClients.patch",
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/discoveryClients/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true,
                      "description": "Output only. Identifier. Full name of this discovery client."
                    },
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    },
                    "updateMask": {
                      "format": "google-fieldmask",
                      "location": "query",
                      "type": "string",
                      "description": "Required. Update mask is used to specify the fields to be overwritten in the `DiscoveryClient` resource by the update. The values specified in the `update_mask` field are relative to the resource, not the full request. A field will be overwritten if it is in the mask. A single * value in the mask lets you to overwrite all fields."
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/discoveryClients/{discoveryClientsId}",
                  "path": "v1/{+name}",
                  "description": "Updates a discovery client."
                },
                "list": {
                  "parameters": {
                    "orderBy": {
                      "description": "Optional. Field to sort by.",
                      "type": "string",
                      "location": "query"
                    },
                    "pageSize": {
                      "description": "Optional. The maximum number of items to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default value.",
                      "type": "integer",
                      "location": "query",
                      "format": "int32"
                    },
                    "pageToken": {
                      "type": "string",
                      "description": "Optional. A page token, received from a previous `ListDiscoveryClients` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDiscoveryClients` must match the call that provided the page token.",
                      "location": "query"
                    },
                    "parent": {
                      "location": "path",
                      "required": true,
                      "description": "Required. Parent resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string"
                    },
                    "filter": {
                      "description": "Optional. Filter expression to filter results by.",
                      "type": "string",
                      "location": "query"
                    }
                  },
                  "id": "migrationcenter.projects.locations.discoveryClients.list",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+parent}/discoveryClients",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/discoveryClients",
                  "description": "Lists all the discovery clients in a given project and location.",
                  "response": {
                    "$ref": "ListDiscoveryClientsResponse"
                  },
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "parent"
                  ]
                }
              }
            },
            "operations": {
              "methods": {
                "cancel": {
                  "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.",
                  "path": "v1/{+name}:cancel",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "type": "string",
                      "required": true,
                      "location": "path",
                      "description": "The name of the operation resource to be cancelled."
                    }
                  },
                  "id": "migrationcenter.projects.locations.operations.cancel",
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Empty"
                  },
                  "request": {
                    "$ref": "CancelOperationRequest"
                  }
                },
                "list": {
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "path": "v1/{+name}/operations",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations",
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true,
                      "description": "The name of the operation's parent resource."
                    },
                    "pageSize": {
                      "description": "The standard list page size.",
                      "type": "integer",
                      "location": "query",
                      "format": "int32"
                    },
                    "pageToken": {
                      "type": "string",
                      "description": "The standard list page token.",
                      "location": "query"
                    },
                    "returnPartialSuccess": {
                      "location": "query",
                      "type": "boolean",
                      "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."
                    },
                    "filter": {
                      "location": "query",
                      "description": "The standard list filter.",
                      "type": "string"
                    }
                  },
                  "id": "migrationcenter.projects.locations.operations.list",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "parameters": {
                    "name": {
                      "required": true,
                      "location": "path",
                      "description": "The name of the operation resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "type": "string"
                    }
                  },
                  "id": "migrationcenter.projects.locations.operations.get",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "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"
                  },
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ]
                },
                "delete": {
                  "response": {
                    "$ref": "Empty"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "DELETE",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "description": "The name of the operation resource to be deleted.",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "id": "migrationcenter.projects.locations.operations.delete",
                  "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}"
                }
              }
            },
            "groups": {
              "methods": {
                "get": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}",
                  "path": "v1/{+name}",
                  "description": "Gets the details of a group.",
                  "id": "migrationcenter.projects.locations.groups.get",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "required": true,
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Group"
                  }
                },
                "delete": {
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "DELETE",
                  "response": {
                    "$ref": "Operation"
                  },
                  "description": "Deletes a group.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}",
                  "path": "v1/{+name}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.groups.delete",
                  "parameters": {
                    "requestId": {
                      "location": "query",
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
                    },
                    "name": {
                      "required": true,
                      "location": "path",
                      "description": "Required. Name of the group resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "type": "string"
                    }
                  }
                },
                "removeAssets": {
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "group"
                  ],
                  "request": {
                    "$ref": "RemoveAssetsFromGroupRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}:removeAssets",
                  "path": "v1/{+group}:removeAssets",
                  "description": "Removes assets from a group.",
                  "id": "migrationcenter.projects.locations.groups.removeAssets",
                  "parameters": {
                    "group": {
                      "location": "path",
                      "required": true,
                      "description": "Required. Group reference.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "create": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.groups.create",
                  "parameters": {
                    "groupId": {
                      "location": "query",
                      "type": "string",
                      "description": "Required. User specified ID for the group. It will become the last component of the group name. The ID must be unique within the project, must conform with RFC-1034, is restricted to lower-cased letters, and has a maximum length of 63 characters. The ID must match the regular expression: `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`."
                    },
                    "parent": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "description": "Required. Value for parent.",
                      "required": true,
                      "location": "path"
                    },
                    "requestId": {
                      "location": "query",
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
                    }
                  },
                  "description": "Creates a new group in a given project and location.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/groups",
                  "path": "v1/{+parent}/groups",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "Group"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "POST"
                },
                "patch": {
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "PATCH",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "Group"
                  },
                  "description": "Updates the parameters of a group.",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    },
                    "name": {
                      "required": true,
                      "location": "path",
                      "description": "Output only. The name of the group.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "type": "string"
                    },
                    "updateMask": {
                      "format": "google-fieldmask",
                      "location": "query",
                      "type": "string",
                      "description": "Required. Field mask is used to specify the fields to be overwritten in the `Group` resource by the update. The values specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. A single * value in the mask lets you to overwrite all fields."
                    }
                  },
                  "id": "migrationcenter.projects.locations.groups.patch"
                },
                "list": {
                  "parameters": {
                    "pageSize": {
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "type": "integer",
                      "location": "query",
                      "format": "int32"
                    },
                    "pageToken": {
                      "description": "A token identifying a page of results the server should return.",
                      "type": "string",
                      "location": "query"
                    },
                    "orderBy": {
                      "location": "query",
                      "type": "string",
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details."
                    },
                    "parent": {
                      "description": "Required. Parent value for `ListGroupsRequest`.",
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$"
                    },
                    "filter": {
                      "type": "string",
                      "description": "Filtering results.",
                      "location": "query"
                    }
                  },
                  "id": "migrationcenter.projects.locations.groups.list",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+parent}/groups",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/groups",
                  "description": "Lists all groups in a given project and location.",
                  "response": {
                    "$ref": "ListGroupsResponse"
                  },
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "parent"
                  ]
                },
                "addAssets": {
                  "request": {
                    "$ref": "AddAssetsToGroupRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "group"
                  ],
                  "parameters": {
                    "group": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "description": "Required. Group reference.",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "id": "migrationcenter.projects.locations.groups.addAssets",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+group}:addAssets",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}:addAssets",
                  "description": "Adds assets to a group."
                }
              }
            },
            "assetsExportJobs": {
              "methods": {
                "list": {
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "parent"
                  ],
                  "response": {
                    "$ref": "ListAssetsExportJobsResponse"
                  },
                  "path": "v1/{+parent}/assetsExportJobs",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/assetsExportJobs",
                  "description": "Lists all the assets export jobs in a given project and location.",
                  "parameters": {
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "required": true,
                      "location": "path",
                      "description": "Required. Parent resource."
                    },
                    "pageSize": {
                      "format": "int32",
                      "location": "query",
                      "type": "integer",
                      "description": "Optional. Requested page size. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default value."
                    },
                    "pageToken": {
                      "description": "Optional. A token identifying a page of results that the server should return.",
                      "type": "string",
                      "location": "query"
                    }
                  },
                  "id": "migrationcenter.projects.locations.assetsExportJobs.list",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "create": {
                  "description": "Creates a new assets export job.",
                  "path": "v1/{+parent}/assetsExportJobs",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/assetsExportJobs",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "requestId": {
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string",
                      "location": "query"
                    },
                    "parent": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "description": "Required. The parent resource where the assts export job will be created.",
                      "required": true,
                      "location": "path"
                    },
                    "assetsExportJobId": {
                      "type": "string",
                      "description": "Required. The ID to use for the asset export job.",
                      "location": "query"
                    }
                  },
                  "id": "migrationcenter.projects.locations.assetsExportJobs.create",
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "AssetsExportJob"
                  }
                },
                "run": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/assetsExportJobs/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "required": true,
                      "description": "Required. Name of the resource."
                    }
                  },
                  "id": "migrationcenter.projects.locations.assetsExportJobs.run",
                  "description": "Runs an assets export job, returning an AssetsExportJobExecution.",
                  "path": "v1/{+name}:run",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/assetsExportJobs/{assetsExportJobsId}:run",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "RunAssetsExportJobRequest"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "POST"
                },
                "get": {
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/assetsExportJobs/{assetsExportJobsId}",
                  "description": "Gets the details of an assets export job.",
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/assetsExportJobs/[^/]+$",
                      "type": "string",
                      "required": true,
                      "location": "path",
                      "description": "Required. Name of the resource."
                    }
                  },
                  "id": "migrationcenter.projects.locations.assetsExportJobs.get",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "AssetsExportJob"
                  }
                },
                "delete": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.assetsExportJobs.delete",
                  "parameters": {
                    "name": {
                      "required": true,
                      "location": "path",
                      "description": "Required. The name of the assets export job to delete.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/assetsExportJobs/[^/]+$",
                      "type": "string"
                    }
                  },
                  "description": "Deletes an assets export job.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/assetsExportJobs/{assetsExportJobsId}",
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "DELETE"
                }
              }
            }
          }
        }
      }
    }
  },
  "schemas": {
    "DailyResourceUsageAggregationCPU": {
      "type": "object",
      "properties": {
        "utilizationPercentage": {
          "description": "CPU utilization percentage.",
          "$ref": "DailyResourceUsageAggregationStats"
        }
      },
      "description": "Statistical aggregation of CPU usage.",
      "id": "DailyResourceUsageAggregationCPU"
    },
    "OutputFile": {
      "description": "Contains a single output file.",
      "type": "object",
      "properties": {
        "xlsxOutputFile": {
          "description": "Output only. XLSX output file.",
          "readOnly": true,
          "$ref": "XlsxOutputFile"
        },
        "fileSizeBytes": {
          "description": "Output only. File size in bytes.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        },
        "csvOutputFile": {
          "readOnly": true,
          "$ref": "CsvOutputFile",
          "description": "Output only. CSV output file."
        }
      },
      "id": "OutputFile"
    },
    "AssetsExportJob": {
      "description": "Assets export job message.",
      "type": "object",
      "properties": {
        "createTime": {
          "type": "string",
          "description": "Output only. Resource creation time.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "updateTime": {
          "readOnly": true,
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. Resource update time."
        },
        "showHidden": {
          "type": "boolean",
          "description": "Optional. When this value is set to 'true' the response will include all assets, including those that are hidden."
        },
        "inventory": {
          "$ref": "AssetsExportJobInventory",
          "description": "Export asset inventory details."
        },
        "condition": {
          "description": "Optional. Conditions for selecting assets to export.",
          "$ref": "AssetsExportJobExportCondition"
        },
        "recentExecutions": {
          "readOnly": true,
          "items": {
            "$ref": "AssetsExportJobExecution"
          },
          "type": "array",
          "description": "Output only. Recent non expired executions of the job."
        },
        "name": {
          "type": "string",
          "description": "Output only. Identifier. Resource name.",
          "readOnly": true
        },
        "networkDependencies": {
          "description": "Export data regarding asset network dependencies.",
          "$ref": "AssetsExportJobNetworkDependencies"
        },
        "performanceData": {
          "description": "Export asset with performance data.",
          "$ref": "AssetsExportJobPerformanceData"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. Labels as key value pairs. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be \u003c= 128 bytes."
        },
        "signedUriDestination": {
          "$ref": "SignedUriDestination",
          "description": "Export to Cloud Storage files downloadable using signed URIs."
        }
      },
      "id": "AssetsExportJob"
    },
    "MySqlProperty": {
      "id": "MySqlProperty",
      "type": "object",
      "properties": {
        "enabled": {
          "description": "Required. The property is enabled.",
          "type": "boolean"
        },
        "numericValue": {
          "format": "int64",
          "description": "Required. The property numeric value.",
          "type": "string"
        },
        "property": {
          "type": "string",
          "description": "Required. The property name."
        }
      },
      "description": "MySql property."
    },
    "ReportConfigGroupPreferenceSetAssignment": {
      "type": "object",
      "properties": {
        "group": {
          "description": "Required. Name of the group.",
          "type": "string"
        },
        "preferenceSet": {
          "description": "Required. Name of the Preference Set.",
          "type": "string"
        }
      },
      "description": "Represents a combination of a group with a preference set.",
      "id": "ReportConfigGroupPreferenceSetAssignment"
    },
    "GenericInsight": {
      "id": "GenericInsight",
      "description": "A generic insight about an asset.",
      "type": "object",
      "properties": {
        "defaultMessage": {
          "readOnly": true,
          "description": "Output only. In case message_code is not yet known by the client default_message will be the message to be used instead.",
          "type": "string"
        },
        "messageId": {
          "description": "Output only. Represents a globally unique message id for this insight, can be used for localization purposes, in case message_code is not yet known by the client use default_message instead.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        },
        "additionalInformation": {
          "description": "Output only. Additional information about the insight, each entry can be a logical entry and must make sense if it is displayed with line breaks between each entry. Text can contain md style links.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        }
      }
    },
    "RunningServiceList": {
      "description": "List of running guest OS services.",
      "type": "object",
      "properties": {
        "entries": {
          "items": {
            "$ref": "RunningService"
          },
          "description": "Running service entries.",
          "type": "array"
        }
      },
      "id": "RunningServiceList"
    },
    "SendDiscoveryClientHeartbeatRequest": {
      "type": "object",
      "properties": {
        "version": {
          "description": "Optional. Client application version.",
          "type": "string"
        },
        "errors": {
          "description": "Optional. Errors affecting client functionality.",
          "type": "array",
          "items": {
            "$ref": "Status"
          }
        }
      },
      "description": "A request to send a discovery client heartbeat.",
      "id": "SendDiscoveryClientHeartbeatRequest"
    },
    "DailyResourceUsageAggregationNetwork": {
      "id": "DailyResourceUsageAggregationNetwork",
      "type": "object",
      "properties": {
        "ingressBps": {
          "description": "Network ingress in B/s.",
          "$ref": "DailyResourceUsageAggregationStats"
        },
        "egressBps": {
          "$ref": "DailyResourceUsageAggregationStats",
          "description": "Network egress in B/s."
        }
      },
      "description": "Statistical aggregation of network usage."
    },
    "SignedUri": {
      "description": "Contains a signed URI.",
      "type": "object",
      "properties": {
        "file": {
          "readOnly": true,
          "description": "Output only. Name of the file the Signed URI references.",
          "type": "string"
        },
        "uri": {
          "description": "Output only. Download URI for the file.",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "SignedUri"
    },
    "AssetsExportJobExecution": {
      "id": "AssetsExportJobExecution",
      "type": "object",
      "properties": {
        "executionId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Globally unique identifier of the execution."
        },
        "startTime": {
          "readOnly": true,
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. Execution timestamp."
        },
        "endTime": {
          "readOnly": true,
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. Completion time of the export."
        },
        "requestedAssetCount": {
          "description": "Output only. Number of assets requested for export after resolving the requested filters.",
          "type": "integer",
          "readOnly": true,
          "format": "int32"
        },
        "expireTime": {
          "description": "Output only. Expiration time for the export and artifacts.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        },
        "result": {
          "description": "Output only. Result of the export execution.",
          "readOnly": true,
          "$ref": "AssetsExportJobExecutionResult"
        }
      },
      "description": "Execution status of assets export job."
    },
    "AggregationCount": {
      "description": "Object count.",
      "type": "object",
      "properties": {},
      "id": "AggregationCount"
    },
    "AggregationResultHistogramBucket": {
      "type": "object",
      "properties": {
        "lowerBound": {
          "format": "double",
          "description": "Lower bound - inclusive.",
          "type": "number"
        },
        "upperBound": {
          "type": "number",
          "description": "Upper bound - exclusive.",
          "format": "double"
        },
        "count": {
          "format": "int64",
          "description": "Count of items in the bucket.",
          "type": "string"
        }
      },
      "description": "A histogram bucket with a lower and upper bound, and a count of items with a field value between those bounds. The lower bound is inclusive and the upper bound is exclusive. Lower bound may be -infinity and upper bound may be infinity.",
      "id": "AggregationResultHistogramBucket"
    },
    "ValidateImportJobRequest": {
      "id": "ValidateImportJobRequest",
      "type": "object",
      "properties": {
        "requestId": {
          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
          "type": "string"
        }
      },
      "description": "A request to validate an import job."
    },
    "DailyResourceUsageAggregationMemory": {
      "id": "DailyResourceUsageAggregationMemory",
      "description": "Statistical aggregation of memory usage.",
      "type": "object",
      "properties": {
        "utilizationPercentage": {
          "$ref": "DailyResourceUsageAggregationStats",
          "description": "Memory utilization percentage."
        }
      }
    },
    "ReportSummaryVmwareEngineFinding": {
      "id": "ReportSummaryVmwareEngineFinding",
      "type": "object",
      "properties": {
        "allocatedRegions": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Set of regions in which the assets were allocated"
        },
        "allocatedAssetCount": {
          "format": "int64",
          "type": "string",
          "description": "Count of assets which are allocated"
        },
        "nodeAllocations": {
          "type": "array",
          "description": "Set of per-nodetype allocation records",
          "items": {
            "$ref": "ReportSummaryVmwareNodeAllocation"
          }
        }
      },
      "description": "A set of findings that applies to assets destined for VMWare Engine."
    },
    "ComputeStorageDescriptor": {
      "id": "ComputeStorageDescriptor",
      "description": "Compute Engine storage option descriptor.",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "readOnly": true,
          "enum": [
            "PERSISTENT_DISK_TYPE_UNSPECIFIED",
            "PERSISTENT_DISK_TYPE_STANDARD",
            "PERSISTENT_DISK_TYPE_BALANCED",
            "PERSISTENT_DISK_TYPE_SSD"
          ],
          "enumDescriptions": [
            "Unspecified. Fallback to default value based on context.",
            "Standard HDD Persistent Disk.",
            "Balanced Persistent Disk.",
            "SSD Persistent Disk."
          ],
          "description": "Output only. Disk type backing the storage."
        },
        "sizeGb": {
          "readOnly": true,
          "format": "int32",
          "description": "Output only. Disk size in GiB.",
          "type": "integer"
        }
      }
    },
    "BatchDeleteAssetsRequest": {
      "id": "BatchDeleteAssetsRequest",
      "description": "A request to delete a list of asset.",
      "type": "object",
      "properties": {
        "allowMissing": {
          "description": "Optional. When this value is set to `true` the request is a no-op for non-existing assets. See https://google.aip.dev/135#delete-if-existing for additional details. Default value is `false`.",
          "type": "boolean"
        },
        "names": {
          "description": "Required. The IDs of the assets to delete. A maximum of 1000 assets can be deleted in a batch. Format: projects/{project}/locations/{location}/assets/{name}.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "cascadingRules": {
          "type": "array",
          "description": "Optional. Optional cascading rules for deleting related assets.",
          "items": {
            "$ref": "CascadingRule"
          }
        }
      }
    },
    "MachineSeries": {
      "id": "MachineSeries",
      "description": "A machine series, for a target product (e.g. Compute Engine, Google Cloud VMware Engine).",
      "type": "object",
      "properties": {
        "code": {
          "type": "string",
          "description": "Code to identify a machine series. Consult this for more details on the available series for Compute Engine: https://cloud.google.com/compute/docs/machine-resource#machine_type_comparison Consult this for more details on the available series for Google Cloud VMware Engine: https://cloud.google.com/vmware-engine/pricing"
        }
      }
    },
    "MySqlPlugin": {
      "id": "MySqlPlugin",
      "description": "MySql plugin.",
      "type": "object",
      "properties": {
        "plugin": {
          "description": "Required. The plugin name.",
          "type": "string"
        },
        "version": {
          "description": "Required. The plugin version.",
          "type": "string"
        },
        "enabled": {
          "type": "boolean",
          "description": "Required. The plugin is active."
        }
      }
    },
    "Report": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Output only. Name of resource.",
          "type": "string",
          "readOnly": true
        },
        "type": {
          "enum": [
            "TYPE_UNSPECIFIED",
            "TOTAL_COST_OF_OWNERSHIP"
          ],
          "enumDescriptions": [
            "Default Report type.",
            "Total cost of ownership Report type."
          ],
          "type": "string",
          "description": "Report type."
        },
        "displayName": {
          "description": "User-friendly display name. Maximum length is 63 characters.",
          "type": "string"
        },
        "description": {
          "description": "Free-text description.",
          "type": "string"
        },
        "createTime": {
          "type": "string",
          "description": "Output only. Creation timestamp.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "updateTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. Last update timestamp.",
          "type": "string"
        },
        "state": {
          "type": "string",
          "description": "Report creation state.",
          "enum": [
            "STATE_UNSPECIFIED",
            "PENDING",
            "SUCCEEDED",
            "FAILED"
          ],
          "enumDescriptions": [
            "Default Report creation state.",
            "Creating Report.",
            "Successfully created Report.",
            "Failed to create Report."
          ]
        },
        "summary": {
          "readOnly": true,
          "$ref": "ReportSummary",
          "description": "Output only. Summary view of the Report."
        }
      },
      "description": "Report represents a point-in-time rendering of the ReportConfig results.",
      "id": "Report"
    },
    "FitDescriptor": {
      "type": "object",
      "properties": {
        "fitLevel": {
          "readOnly": true,
          "enum": [
            "FIT_LEVEL_UNSPECIFIED",
            "FIT",
            "NO_FIT",
            "REQUIRES_EFFORT"
          ],
          "enumDescriptions": [
            "Not enough information.",
            "Fit.",
            "No Fit.",
            "Fit with effort."
          ],
          "description": "Output only. Fit level.",
          "type": "string"
        }
      },
      "description": "Describes the fit level of an asset for migration to a specific target.",
      "id": "FitDescriptor"
    },
    "AzureVmPlatformDetails": {
      "id": "AzureVmPlatformDetails",
      "type": "object",
      "properties": {
        "provisioningState": {
          "description": "Azure platform's provisioning state.",
          "type": "string"
        },
        "location": {
          "type": "string",
          "description": "The location of the machine in the Azure format."
        },
        "machineTypeLabel": {
          "description": "Azure platform's machine type label.",
          "type": "string"
        },
        "hyperthreading": {
          "type": "string",
          "description": "Whether the machine is hyperthreaded.",
          "enum": [
            "HYPERTHREADING_STATUS_UNSPECIFIED",
            "HYPERTHREADING_STATUS_DISABLED",
            "HYPERTHREADING_STATUS_ENABLED"
          ],
          "enumDescriptions": [
            "Simultaneous Multithreading status unknown.",
            "Simultaneous Multithreading is disabled or unavailable.",
            "Simultaneous Multithreading is enabled."
          ]
        }
      },
      "description": "Azure VM specific details."
    },
    "AssetsExportJobNetworkDependencies": {
      "id": "AssetsExportJobNetworkDependencies",
      "description": "Configuration for network dependencies exports.",
      "type": "object",
      "properties": {}
    },
    "ImportError": {
      "description": "A resource that reports the errors encountered while processing an import job.",
      "type": "object",
      "properties": {
        "errorDetails": {
          "description": "The error information.",
          "type": "string"
        },
        "severity": {
          "type": "string",
          "description": "The severity of the error.",
          "enum": [
            "SEVERITY_UNSPECIFIED",
            "ERROR",
            "WARNING",
            "INFO"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ]
        }
      },
      "id": "ImportError"
    },
    "DatabaseDetailsParentDatabaseDeployment": {
      "type": "object",
      "properties": {
        "manualUniqueId": {
          "description": "Optional. The parent database deployment optional manual unique ID set by the user.",
          "type": "string"
        },
        "generatedId": {
          "description": "Optional. The parent database deployment generated ID.",
          "type": "string"
        }
      },
      "description": "The identifiers of the parent database deployment.",
      "id": "DatabaseDetailsParentDatabaseDeployment"
    },
    "NetworkAddressList": {
      "id": "NetworkAddressList",
      "type": "object",
      "properties": {
        "entries": {
          "items": {
            "$ref": "NetworkAddress"
          },
          "type": "array",
          "description": "Network address entries."
        }
      },
      "description": "List of allocated/assigned network addresses."
    },
    "CancelOperationRequest": {
      "id": "CancelOperationRequest",
      "type": "object",
      "properties": {},
      "description": "The request message for Operations.CancelOperation."
    },
    "AssetsExportJobExecutionResult": {
      "id": "AssetsExportJobExecutionResult",
      "type": "object",
      "properties": {
        "signedUris": {
          "description": "Output only. Signed URLs for downloading export artifacts.",
          "readOnly": true,
          "$ref": "SignedUris"
        },
        "outputFiles": {
          "description": "Output only. List of output files.",
          "readOnly": true,
          "$ref": "OutputFileList"
        },
        "error": {
          "description": "Output only. Error encountered during export.",
          "readOnly": true,
          "$ref": "Status"
        }
      },
      "description": "Contains the result of the assets export."
    },
    "AggregationResultFrequency": {
      "id": "AggregationResultFrequency",
      "description": "The result of a frequency distribution aggregation.",
      "type": "object",
      "properties": {
        "values": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "format": "int64"
          }
        }
      }
    },
    "ReportSummaryMachineSeriesAllocation": {
      "id": "ReportSummaryMachineSeriesAllocation",
      "type": "object",
      "properties": {
        "machineSeries": {
          "$ref": "MachineSeries",
          "description": "The Machine Series (e.g. \"E2\", \"N2\")"
        },
        "allocatedAssetCount": {
          "type": "string",
          "description": "Count of assets allocated to this machine series.",
          "format": "int64"
        }
      },
      "description": "Represents a data point tracking the count of assets allocated for a specific Machine Series."
    },
    "ReportSummaryAssetAggregateStats": {
      "id": "ReportSummaryAssetAggregateStats",
      "description": "Aggregate statistics for a collection of assets.",
      "type": "object",
      "properties": {
        "operatingSystem": {
          "$ref": "ReportSummaryChartData",
          "description": "Count of assets grouped by Operating System families."
        },
        "memoryUtilizationChart": {
          "description": "Total memory split into Used/Free buckets.",
          "$ref": "ReportSummaryUtilizationChartData"
        },
        "storageBytesHistogram": {
          "$ref": "ReportSummaryHistogramChartData",
          "description": "Histogram showing a distribution of storage sizes."
        },
        "totalMemoryBytes": {
          "description": "Sum of the memory in bytes of all the assets in this collection.",
          "type": "string",
          "format": "int64"
        },
        "totalAssets": {
          "format": "int64",
          "description": "Count of the number of unique assets in this collection.",
          "type": "string"
        },
        "coreCountHistogram": {
          "$ref": "ReportSummaryHistogramChartData",
          "description": "Histogram showing a distribution of logical CPU core counts."
        },
        "memoryBytesHistogram": {
          "description": "Histogram showing a distribution of memory sizes.",
          "$ref": "ReportSummaryHistogramChartData"
        },
        "totalCores": {
          "format": "int64",
          "type": "string",
          "description": "Sum of the CPU core count of all the assets in this collection."
        },
        "softwareInstances": {
          "description": "Output only. Count of assets grouped by software name. Only present for virtual machines.",
          "readOnly": true,
          "$ref": "ReportSummaryChartData"
        },
        "totalStorageBytes": {
          "type": "string",
          "description": "Sum of persistent storage in bytes of all the assets in this collection.",
          "format": "int64"
        },
        "storageUtilizationChart": {
          "$ref": "ReportSummaryUtilizationChartData",
          "description": "Total memory split into Used/Free buckets."
        }
      }
    },
    "VirtualMachinePreferences": {
      "id": "VirtualMachinePreferences",
      "description": "VirtualMachinePreferences enables you to create sets of assumptions, for example, a geographical location and pricing track, for your migrated virtual machines. The set of preferences influence recommendations for migrating virtual machine assets.",
      "type": "object",
      "properties": {
        "targetProduct": {
          "enumDescriptions": [
            "Unspecified (default value).",
            "Prefer to migrate to Google Cloud Compute Engine.",
            "Prefer to migrate to Google Cloud VMware Engine.6278",
            "Prefer to migrate to Google Cloud Sole Tenant Nodes."
          ],
          "enum": [
            "COMPUTE_MIGRATION_TARGET_PRODUCT_UNSPECIFIED",
            "COMPUTE_MIGRATION_TARGET_PRODUCT_COMPUTE_ENGINE",
            "COMPUTE_MIGRATION_TARGET_PRODUCT_VMWARE_ENGINE",
            "COMPUTE_MIGRATION_TARGET_PRODUCT_SOLE_TENANCY"
          ],
          "description": "Target product for assets using this preference set. Specify either target product or business goal, but not both.",
          "type": "string"
        },
        "sizingOptimizationStrategy": {
          "enumDescriptions": [
            "Unspecified (default value).",
            "No optimization applied. Virtual machine sizing matches as closely as possible the machine shape on the source site, not considering any actual performance data.",
            "Virtual machine sizing will match the reported usage and shape, with some slack. This a good value to start with.",
            "Virtual machine sizing will match the reported usage, with little slack. Using this option can help reduce costs."
          ],
          "enum": [
            "SIZING_OPTIMIZATION_STRATEGY_UNSPECIFIED",
            "SIZING_OPTIMIZATION_STRATEGY_SAME_AS_SOURCE",
            "SIZING_OPTIMIZATION_STRATEGY_MODERATE",
            "SIZING_OPTIMIZATION_STRATEGY_AGGRESSIVE"
          ],
          "description": "Sizing optimization strategy specifies the preferred strategy used when extrapolating usage data to calculate insights and recommendations for a virtual machine. If you are unsure which value to set, a moderate sizing optimization strategy is often a good value to start with.",
          "type": "string"
        },
        "computeEnginePreferences": {
          "$ref": "ComputeEnginePreferences",
          "description": "Compute Engine preferences concern insights and recommendations for Compute Engine target."
        },
        "regionPreferences": {
          "$ref": "RegionPreferences",
          "description": "Region preferences for assets using this preference set. If you are unsure which value to set, the migration service API region is often a good value to start with."
        },
        "commitmentPlan": {
          "enumDescriptions": [
            "Unspecified commitment plan.",
            "No commitment plan.",
            "1 year commitment.",
            "3 years commitment."
          ],
          "enum": [
            "COMMITMENT_PLAN_UNSPECIFIED",
            "COMMITMENT_PLAN_NONE",
            "COMMITMENT_PLAN_ONE_YEAR",
            "COMMITMENT_PLAN_THREE_YEARS"
          ],
          "description": "Commitment plan to consider when calculating costs for virtual machine insights and recommendations. If you are unsure which value to set, a 3 year commitment plan is often a good value to start with.",
          "type": "string"
        },
        "vmwareEnginePreferences": {
          "$ref": "VmwareEnginePreferences",
          "description": "Preferences concerning insights and recommendations for Google Cloud VMware Engine."
        },
        "soleTenancyPreferences": {
          "$ref": "SoleTenancyPreferences",
          "description": "Preferences concerning Sole Tenant nodes and virtual machines."
        }
      }
    },
    "ListLocationsResponse": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "The standard List next-page token."
        },
        "locations": {
          "items": {
            "$ref": "Location"
          },
          "description": "A list of locations that matches the specified filter in the request.",
          "type": "array"
        }
      },
      "description": "The response message for Locations.ListLocations.",
      "id": "ListLocationsResponse"
    },
    "RemoveAssetsFromGroupRequest": {
      "description": "A request to remove assets from a group.",
      "type": "object",
      "properties": {
        "allowMissing": {
          "type": "boolean",
          "description": "Optional. When this value is set to `false` and one of the given assets is not an existing member of the group, the operation fails with a `Not Found` error. When set to `true` this situation is silently ignored by the server. Default value is `false`."
        },
        "requestId": {
          "type": "string",
          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
        },
        "assets": {
          "description": "Required. List of assets to be removed. The maximum number of assets that can be removed in a single request is 1000.",
          "$ref": "AssetList"
        }
      },
      "id": "RemoveAssetsFromGroupRequest"
    },
    "RunAssetsExportJobResponse": {
      "type": "object",
      "properties": {
        "assetsExportJobExecution": {
          "readOnly": true,
          "$ref": "AssetsExportJobExecution",
          "description": "Output only. Execution status of the assets export operation."
        }
      },
      "description": "Response message for running an assets export job.",
      "id": "RunAssetsExportJobResponse"
    },
    "MachineDiskDetails": {
      "description": "Details of machine disks.",
      "type": "object",
      "properties": {
        "disks": {
          "description": "List of disks.",
          "$ref": "DiskEntryList"
        },
        "totalCapacityBytes": {
          "type": "string",
          "description": "Disk total Capacity.",
          "format": "int64"
        },
        "totalFreeBytes": {
          "type": "string",
          "description": "Total disk free space.",
          "format": "int64"
        }
      },
      "id": "MachineDiskDetails"
    },
    "MySqlStorageEngineDetails": {
      "description": "Mysql storage engine tables.",
      "type": "object",
      "properties": {
        "engine": {
          "enumDescriptions": [
            "Unspecified storage engine.",
            "InnoDB.",
            "MyISAM.",
            "Memory.",
            "CSV.",
            "Archive.",
            "Blackhole.",
            "NDB.",
            "Merge.",
            "Federated.",
            "Example.",
            "Other."
          ],
          "enum": [
            "ENGINE_UNSPECIFIED",
            "INNODB",
            "MYISAM",
            "MEMORY",
            "CSV",
            "ARCHIVE",
            "BLACKHOLE",
            "NDB",
            "MERGE",
            "FEDERATED",
            "EXAMPLE",
            "OTHER"
          ],
          "description": "Required. The storage engine.",
          "type": "string"
        },
        "encryptedTableCount": {
          "format": "int32",
          "description": "Optional. The number of encrypted tables.",
          "type": "integer"
        },
        "tableCount": {
          "description": "Optional. The number of tables.",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "MySqlStorageEngineDetails"
    },
    "BatchUpdateAssetsResponse": {
      "description": "Response for updating a list of assets.",
      "type": "object",
      "properties": {
        "assets": {
          "items": {
            "$ref": "Asset"
          },
          "type": "array",
          "description": "Update asset content. The content only includes values after field mask being applied."
        }
      },
      "id": "BatchUpdateAssetsResponse"
    },
    "ReportSummaryVmwareNodeAllocation": {
      "type": "object",
      "properties": {
        "vmwareNode": {
          "description": "VMWare node type, e.g. \"ve1-standard-72\"",
          "$ref": "ReportSummaryVmwareNode"
        },
        "nodeCount": {
          "description": "Count of this node type to be provisioned",
          "type": "string",
          "format": "int64"
        },
        "allocatedAssetCount": {
          "format": "int64",
          "description": "Count of assets allocated to these nodes",
          "type": "string"
        }
      },
      "description": "Represents assets allocated to a specific VMWare Node type.",
      "id": "ReportSummaryVmwareNodeAllocation"
    },
    "DatabaseDetails": {
      "description": "Details of a logical database.",
      "type": "object",
      "properties": {
        "allocatedStorageBytes": {
          "type": "string",
          "description": "Optional. The allocated storage for the database in bytes.",
          "format": "int64"
        },
        "schemas": {
          "description": "Optional. The database schemas.",
          "type": "array",
          "items": {
            "$ref": "DatabaseSchema"
          }
        },
        "databaseName": {
          "description": "Required. The name of the database.",
          "type": "string"
        },
        "parentDatabaseDeployment": {
          "$ref": "DatabaseDetailsParentDatabaseDeployment",
          "description": "Required. The parent database deployment that contains the logical database."
        }
      },
      "id": "DatabaseDetails"
    },
    "MigrationInsight": {
      "id": "MigrationInsight",
      "type": "object",
      "properties": {
        "fit": {
          "readOnly": true,
          "$ref": "FitDescriptor",
          "description": "Output only. Description of how well the asset this insight is associated with fits the proposed migration."
        },
        "computeEngineTarget": {
          "description": "Output only. A Google Compute Engine target.",
          "readOnly": true,
          "$ref": "ComputeEngineMigrationTarget"
        }
      },
      "description": "An insight about potential migrations for an asset."
    },
    "SqlServerFeature": {
      "description": "SQL Server feature details.",
      "type": "object",
      "properties": {
        "enabled": {
          "description": "Required. Field enabled is set when a feature is used on the source deployment.",
          "type": "boolean"
        },
        "featureName": {
          "type": "string",
          "description": "Required. The feature name."
        }
      },
      "id": "SqlServerFeature"
    },
    "RunAssetsExportJobRequest": {
      "id": "RunAssetsExportJobRequest",
      "description": "A request to run an assets export job.",
      "type": "object",
      "properties": {
        "requestId": {
          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
          "type": "string"
        }
      }
    },
    "AggregationHistogram": {
      "id": "AggregationHistogram",
      "description": "Histogram of bucketed assets counts by field value.",
      "type": "object",
      "properties": {
        "lowerBounds": {
          "type": "array",
          "description": "Lower bounds of buckets. The response will contain `n+1` buckets for `n` bounds. The first bucket will count all assets for which the field value is smaller than the first bound. Subsequent buckets will count assets for which the field value is greater or equal to a lower bound and smaller than the next one. The last bucket will count assets for which the field value is greater or equal to the final lower bound. You can define up to 20 lower bounds.",
          "items": {
            "type": "number",
            "format": "double"
          }
        }
      }
    },
    "SignedUriDestination": {
      "id": "SignedUriDestination",
      "description": "Signed URI destination configuration.",
      "type": "object",
      "properties": {
        "fileFormat": {
          "description": "Required. The file format to export.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified file format will be treated as CSV.",
            "CSV file format.",
            "XLSX file format which used in Excel."
          ],
          "enum": [
            "FILE_FORMAT_UNSPECIFIED",
            "CSV",
            "XLSX"
          ]
        }
      }
    },
    "AssetPerformanceData": {
      "id": "AssetPerformanceData",
      "type": "object",
      "properties": {
        "dailyResourceUsageAggregations": {
          "items": {
            "$ref": "DailyResourceUsageAggregation"
          },
          "description": "Daily resource usage aggregations. Contains all of the data available for an asset, up to the last 420 days. Aggregations are sorted from oldest to most recent.",
          "type": "array"
        }
      },
      "description": "Performance data for an asset."
    },
    "Date": {
      "id": "Date",
      "type": "object",
      "properties": {
        "month": {
          "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
          "type": "integer",
          "format": "int32"
        },
        "year": {
          "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
          "type": "integer",
          "format": "int32"
        },
        "day": {
          "type": "integer",
          "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.",
          "format": "int32"
        }
      },
      "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp"
    },
    "MySqlSchemaDetails": {
      "description": "Specific details for a Mysql database.",
      "type": "object",
      "properties": {
        "storageEngines": {
          "type": "array",
          "description": "Optional. Mysql storage engine tables.",
          "items": {
            "$ref": "MySqlStorageEngineDetails"
          }
        }
      },
      "id": "MySqlSchemaDetails"
    },
    "GenericPlatformDetails": {
      "type": "object",
      "properties": {
        "location": {
          "description": "Free text representation of the machine location. The format of this field should not be relied on. Different VMs in the same location may have different string values for this field.",
          "type": "string"
        },
        "hyperthreading": {
          "type": "string",
          "description": "Whether the machine is hyperthreaded.",
          "enum": [
            "HYPERTHREADING_STATUS_UNSPECIFIED",
            "HYPERTHREADING_STATUS_DISABLED",
            "HYPERTHREADING_STATUS_ENABLED"
          ],
          "enumDescriptions": [
            "Simultaneous Multithreading status unknown.",
            "Simultaneous Multithreading is disabled or unavailable.",
            "Simultaneous Multithreading is enabled."
          ]
        }
      },
      "description": "Generic platform details.",
      "id": "GenericPlatformDetails"
    },
    "MachineNetworkDetails": {
      "description": "Details of network adapters and settings.",
      "type": "object",
      "properties": {
        "primaryIpAddress": {
          "type": "string",
          "description": "The primary IP address of the machine."
        },
        "publicIpAddress": {
          "type": "string",
          "description": "The public IP address of the machine."
        },
        "defaultGateway": {
          "type": "string",
          "description": "Optional. Default gateway address."
        },
        "primaryMacAddress": {
          "type": "string",
          "description": "MAC address of the machine. This property is used to uniqly identify the machine."
        },
        "adapters": {
          "description": "List of network adapters.",
          "$ref": "NetworkAdapterList"
        }
      },
      "id": "MachineNetworkDetails"
    },
    "NetworkAdapterDetails": {
      "id": "NetworkAdapterDetails",
      "type": "object",
      "properties": {
        "adapterType": {
          "type": "string",
          "description": "Network adapter type (e.g. VMXNET3)."
        },
        "macAddress": {
          "description": "MAC address.",
          "type": "string"
        },
        "addresses": {
          "description": "NetworkAddressList",
          "$ref": "NetworkAddressList"
        }
      },
      "description": "Details of network adapter."
    },
    "SqlServerServerFlag": {
      "type": "object",
      "properties": {
        "valueInUse": {
          "type": "string",
          "description": "Required. The server flag actual value. If `value_in_use` is different from `value` it means that either the configuration change was not applied or it is an expected behavior. See SQL Server documentation for more details."
        },
        "serverFlagName": {
          "description": "Required. The server flag name.",
          "type": "string"
        },
        "value": {
          "description": "Required. The server flag value set by the user.",
          "type": "string"
        }
      },
      "description": "SQL Server server flag details.",
      "id": "SqlServerServerFlag"
    },
    "PreferenceSet": {
      "description": "The preferences that apply to all assets in a given context.",
      "type": "object",
      "properties": {
        "createTime": {
          "type": "string",
          "description": "Output only. The timestamp when the preference set was created.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The timestamp when the preference set was last updated.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        },
        "virtualMachinePreferences": {
          "$ref": "VirtualMachinePreferences",
          "description": "Optional. A set of preferences that applies to all virtual machines in the context."
        },
        "description": {
          "type": "string",
          "description": "A description of the preference set."
        },
        "displayName": {
          "description": "User-friendly display name. Maximum length is 63 characters.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Output only. Name of the preference set.",
          "readOnly": true
        }
      },
      "id": "PreferenceSet"
    },
    "ReportSummaryChartDataDataPoint": {
      "id": "ReportSummaryChartDataDataPoint",
      "description": "Describes a single data point in the Chart.",
      "type": "object",
      "properties": {
        "value": {
          "format": "double",
          "type": "number",
          "description": "The Y-axis value for this data point."
        },
        "label": {
          "description": "The X-axis label for this data point.",
          "type": "string"
        }
      }
    },
    "SoleTenantNodeType": {
      "description": "A Sole Tenant node type.",
      "type": "object",
      "properties": {
        "nodeName": {
          "type": "string",
          "description": "Name of the Sole Tenant node. Consult https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes"
        }
      },
      "id": "SoleTenantNodeType"
    },
    "MachineDetails": {
      "id": "MachineDetails",
      "description": "Details of a machine.",
      "type": "object",
      "properties": {
        "uuid": {
          "type": "string",
          "description": "Machine unique identifier."
        },
        "architecture": {
          "$ref": "MachineArchitectureDetails",
          "description": "Architecture details (vendor, CPU architecture)."
        },
        "createTime": {
          "description": "Machine creation time.",
          "type": "string",
          "format": "google-datetime"
        },
        "coreCount": {
          "type": "integer",
          "description": "Number of logical CPU cores in the machine. Must be non-negative.",
          "format": "int32"
        },
        "disks": {
          "$ref": "MachineDiskDetails",
          "description": "Disk details."
        },
        "diskPartitions": {
          "description": "Optional. Disk partitions details. Note: Partitions are not necessarily mounted on local disks and therefore might not have a one-to-one correspondence with local disks.",
          "$ref": "DiskPartitionDetails"
        },
        "memoryMb": {
          "type": "integer",
          "description": "The amount of memory in the machine. Must be non-negative.",
          "format": "int32"
        },
        "machineName": {
          "type": "string",
          "description": "Machine name."
        },
        "network": {
          "$ref": "MachineNetworkDetails",
          "description": "Network details."
        },
        "platform": {
          "description": "Platform specific information.",
          "$ref": "PlatformDetails"
        },
        "guestOs": {
          "description": "Guest OS information.",
          "$ref": "GuestOsDetails"
        },
        "powerState": {
          "enum": [
            "POWER_STATE_UNSPECIFIED",
            "PENDING",
            "ACTIVE",
            "SUSPENDING",
            "SUSPENDED",
            "DELETING",
            "DELETED"
          ],
          "enumDescriptions": [
            "Power state is unknown.",
            "The machine is preparing to enter the ACTIVE state. An instance may enter the PENDING state when it launches for the first time, or when it is started after being in the SUSPENDED state.",
            "The machine is active.",
            "The machine is being turned off.",
            "The machine is off.",
            "The machine is being deleted from the hosting platform.",
            "The machine is deleted from the hosting platform."
          ],
          "type": "string",
          "description": "Power state of the machine."
        }
      }
    },
    "GuestInstalledApplication": {
      "id": "GuestInstalledApplication",
      "description": "Guest installed application information.",
      "type": "object",
      "properties": {
        "applicationName": {
          "type": "string",
          "description": "Installed application name."
        },
        "installTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "The time when the application was installed."
        },
        "path": {
          "description": "Source path.",
          "type": "string"
        },
        "version": {
          "type": "string",
          "description": "Installed application version."
        },
        "vendor": {
          "type": "string",
          "description": "Installed application vendor."
        },
        "licenses": {
          "description": "License strings associated with the installed application.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "RunningProcessList": {
      "description": "List of running guest OS processes.",
      "type": "object",
      "properties": {
        "entries": {
          "type": "array",
          "description": "Running process entries.",
          "items": {
            "$ref": "RunningProcess"
          }
        }
      },
      "id": "RunningProcessList"
    },
    "PostgreSqlDatabaseDeployment": {
      "type": "object",
      "properties": {
        "properties": {
          "description": "Optional. List of PostgreSql properties.",
          "type": "array",
          "items": {
            "$ref": "PostgreSqlProperty"
          }
        },
        "settings": {
          "items": {
            "$ref": "PostgreSqlSetting"
          },
          "description": "Optional. List of PostgreSql settings.",
          "type": "array"
        }
      },
      "description": "Specific details for a PostgreSQL database deployment.",
      "id": "PostgreSqlDatabaseDeployment"
    },
    "ComputeEngineShapeDescriptor": {
      "type": "object",
      "properties": {
        "logicalCoreCount": {
          "readOnly": true,
          "format": "int32",
          "description": "Output only. Number of logical cores.",
          "type": "integer"
        },
        "storage": {
          "readOnly": true,
          "items": {
            "$ref": "ComputeStorageDescriptor"
          },
          "type": "array",
          "description": "Output only. Compute Engine storage. Never empty."
        },
        "memoryMb": {
          "format": "int32",
          "type": "integer",
          "description": "Memory in mebibytes."
        },
        "physicalCoreCount": {
          "type": "integer",
          "description": "Number of physical cores.",
          "format": "int32"
        },
        "series": {
          "description": "Output only. Compute Engine machine series.",
          "type": "string",
          "readOnly": true
        },
        "machineType": {
          "description": "Output only. Compute Engine machine type.",
          "type": "string",
          "readOnly": true
        }
      },
      "description": "Compute Engine target shape descriptor.",
      "id": "ComputeEngineShapeDescriptor"
    },
    "MySqlVariable": {
      "description": "MySql variable.",
      "type": "object",
      "properties": {
        "variable": {
          "type": "string",
          "description": "Required. The variable name."
        },
        "category": {
          "type": "string",
          "description": "Required. The variable category."
        },
        "value": {
          "type": "string",
          "description": "Required. The variable value."
        }
      },
      "id": "MySqlVariable"
    },
    "AggregationResultHistogram": {
      "description": "The result of a bucketed histogram aggregation.",
      "type": "object",
      "properties": {
        "buckets": {
          "description": "Buckets in the histogram. There will be `n+1` buckets matching `n` lower bounds in the request. The first bucket will be from -infinity to the first bound. Subsequent buckets will be between one bound and the next. The final bucket will be from the final bound to infinity.",
          "type": "array",
          "items": {
            "$ref": "AggregationResultHistogramBucket"
          }
        }
      },
      "id": "AggregationResultHistogram"
    },
    "CpuUsageSample": {
      "description": "CPU usage sample.",
      "type": "object",
      "properties": {
        "utilizedPercentage": {
          "format": "float",
          "description": "Percentage of total CPU capacity utilized. Must be in the interval [0, 100]. On most systems can be calculated using 100 - idle percentage.",
          "type": "number"
        }
      },
      "id": "CpuUsageSample"
    },
    "ExecutionReport": {
      "description": "A resource that reports result of the import job execution.",
      "type": "object",
      "properties": {
        "executionErrors": {
          "$ref": "ValidationReport",
          "description": "Validation errors encountered during the execution of the import job."
        },
        "framesReported": {
          "description": "Total number of asset frames reported for the import job.",
          "type": "integer",
          "format": "int32"
        },
        "totalRowsCount": {
          "readOnly": true,
          "format": "int32",
          "type": "integer",
          "description": "Output only. Total number of rows in the import job."
        }
      },
      "id": "ExecutionReport"
    },
    "UploadFileInfo": {
      "id": "UploadFileInfo",
      "description": "A resource that contains a URI to which a data file can be uploaded.",
      "type": "object",
      "properties": {
        "signedUri": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Upload URI for the file."
        },
        "headers": {
          "readOnly": true,
          "description": "Output only. The headers that were used to sign the URI.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "uriExpirationTime": {
          "description": "Output only. Expiration time of the upload URI.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        }
      }
    },
    "ReportSummaryGroupFinding": {
      "id": "ReportSummaryGroupFinding",
      "description": "Summary Findings for a specific Group.",
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "Description for the Group."
        },
        "assetAggregateStats": {
          "description": "Summary statistics for all the assets in this group.",
          "$ref": "ReportSummaryAssetAggregateStats"
        },
        "overlappingAssetCount": {
          "format": "int64",
          "deprecated": true,
          "type": "string",
          "description": "This field is deprecated, do not rely on it having a value."
        },
        "displayName": {
          "description": "Display Name for the Group.",
          "type": "string"
        },
        "preferenceSetFindings": {
          "items": {
            "$ref": "ReportSummaryGroupPreferenceSetFinding"
          },
          "type": "array",
          "description": "Findings for each of the PreferenceSets for this group."
        }
      }
    },
    "AwsRds": {
      "description": "Specific details for an AWS RDS database deployment.",
      "type": "object",
      "properties": {},
      "id": "AwsRds"
    },
    "AddAssetsToGroupRequest": {
      "description": "A request to add assets to a group.",
      "type": "object",
      "properties": {
        "requestId": {
          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
          "type": "string"
        },
        "assets": {
          "description": "Required. List of assets to be added. The maximum number of assets that can be added in a single request is 2000.",
          "$ref": "AssetList"
        },
        "allowExisting": {
          "type": "boolean",
          "description": "Optional. When this value is set to `false` and one of the given assets is already an existing member of the group, the operation fails with an `Already Exists` error. When set to `true` this situation is silently ignored by the server. Default value is `false`."
        }
      },
      "id": "AddAssetsToGroupRequest"
    },
    "ReportConfig": {
      "id": "ReportConfig",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "User-friendly display name. Maximum length is 63 characters.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Output only. Name of resource.",
          "readOnly": true
        },
        "createTime": {
          "type": "string",
          "description": "Output only. The timestamp when the resource was created.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "updateTime": {
          "readOnly": true,
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. The timestamp when the resource was last updated."
        },
        "groupPreferencesetAssignments": {
          "items": {
            "$ref": "ReportConfigGroupPreferenceSetAssignment"
          },
          "description": "Required. Collection of combinations of groups and preference sets.",
          "type": "array"
        },
        "description": {
          "type": "string",
          "description": "Free-text description."
        }
      },
      "description": "The groups and associated preference sets on which we can generate reports."
    },
    "ListRelationsResponse": {
      "id": "ListRelationsResponse",
      "description": "Response message for listing relations.",
      "type": "object",
      "properties": {
        "relations": {
          "items": {
            "$ref": "Relation"
          },
          "description": "A list of relations.",
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token identifying a page of results the server should return."
        }
      }
    },
    "ComputeEnginePreferences": {
      "description": "The user preferences relating to Compute Engine target platform.",
      "type": "object",
      "properties": {
        "licenseType": {
          "enumDescriptions": [
            "Unspecified (default value).",
            "Default Google Cloud licensing plan. Licensing is charged per usage. This a good value to start with.",
            "Bring-your-own-license (BYOL) plan. User provides the OS license."
          ],
          "enum": [
            "LICENSE_TYPE_UNSPECIFIED",
            "LICENSE_TYPE_DEFAULT",
            "LICENSE_TYPE_BRING_YOUR_OWN_LICENSE"
          ],
          "description": "License type to consider when calculating costs for virtual machine insights and recommendations. If unspecified, costs are calculated based on the default licensing plan.",
          "type": "string"
        },
        "persistentDiskType": {
          "type": "string",
          "description": "Persistent disk type to use. If unspecified (default), all types are considered, based on available usage data.",
          "enum": [
            "PERSISTENT_DISK_TYPE_UNSPECIFIED",
            "PERSISTENT_DISK_TYPE_STANDARD",
            "PERSISTENT_DISK_TYPE_BALANCED",
            "PERSISTENT_DISK_TYPE_SSD"
          ],
          "enumDescriptions": [
            "Unspecified. Fallback to default value based on context.",
            "Standard HDD Persistent Disk.",
            "Balanced Persistent Disk.",
            "SSD Persistent Disk."
          ]
        },
        "machinePreferences": {
          "description": "Preferences concerning the machine types to consider on Compute Engine.",
          "$ref": "MachinePreferences"
        }
      },
      "id": "ComputeEnginePreferences"
    },
    "OpenFileDetails": {
      "id": "OpenFileDetails",
      "description": "Open file Information.",
      "type": "object",
      "properties": {
        "fileType": {
          "type": "string",
          "description": "Opened file file type."
        },
        "filePath": {
          "description": "Opened file file path.",
          "type": "string"
        },
        "command": {
          "description": "Opened file command.",
          "type": "string"
        },
        "user": {
          "description": "Opened file user.",
          "type": "string"
        }
      }
    },
    "AssetsExportJobInventory": {
      "description": "Configuration for asset inventory details exports.",
      "type": "object",
      "properties": {},
      "id": "AssetsExportJobInventory"
    },
    "ReportAssetFramesResponse": {
      "description": "A response to a call to `ReportAssetFrame`.",
      "type": "object",
      "properties": {},
      "id": "ReportAssetFramesResponse"
    },
    "AssetsExportJobExportCondition": {
      "id": "AssetsExportJobExportCondition",
      "description": "Conditions for selecting assets to export.",
      "type": "object",
      "properties": {
        "filter": {
          "type": "string",
          "description": "Optional. Assets filter, supports the same syntax as asset listing."
        }
      }
    },
    "HostsEntry": {
      "id": "HostsEntry",
      "type": "object",
      "properties": {
        "ip": {
          "description": "IP (raw, IPv4/6 agnostic).",
          "type": "string"
        },
        "hostNames": {
          "items": {
            "type": "string"
          },
          "description": "List of host names / aliases.",
          "type": "array"
        }
      },
      "description": "Single /etc/hosts entry."
    },
    "VmwareDiskConfig": {
      "id": "VmwareDiskConfig",
      "description": "VMware disk config details.",
      "type": "object",
      "properties": {
        "vmdkMode": {
          "enumDescriptions": [
            "VMDK disk mode unspecified or unknown.",
            "Dependent disk mode.",
            "Independent - Persistent disk mode.",
            "Independent - Nonpersistent disk mode."
          ],
          "enum": [
            "VMDK_MODE_UNSPECIFIED",
            "DEPENDENT",
            "INDEPENDENT_PERSISTENT",
            "INDEPENDENT_NONPERSISTENT"
          ],
          "description": "VMDK disk mode.",
          "type": "string"
        },
        "rdmCompatibility": {
          "type": "string",
          "description": "RDM compatibility mode.",
          "enum": [
            "RDM_COMPATIBILITY_UNSPECIFIED",
            "PHYSICAL_COMPATIBILITY",
            "VIRTUAL_COMPATIBILITY"
          ],
          "enumDescriptions": [
            "Compatibility mode unspecified or unknown.",
            "Physical compatibility mode.",
            "Virtual compatibility mode."
          ]
        },
        "backingType": {
          "description": "VMDK backing type.",
          "type": "string",
          "enumDescriptions": [
            "Default value.",
            "Flat v1.",
            "Flat v2.",
            "Persistent memory, also known as Non-Volatile Memory (NVM).",
            "Raw Disk Memory v1.",
            "Raw Disk Memory v2.",
            "SEsparse is a snapshot format introduced in vSphere 5.5 for large disks.",
            "SEsparse v1.",
            "SEsparse v1."
          ],
          "enum": [
            "BACKING_TYPE_UNSPECIFIED",
            "BACKING_TYPE_FLAT_V1",
            "BACKING_TYPE_FLAT_V2",
            "BACKING_TYPE_PMEM",
            "BACKING_TYPE_RDM_V1",
            "BACKING_TYPE_RDM_V2",
            "BACKING_TYPE_SESPARSE",
            "BACKING_TYPE_SESPARSE_V1",
            "BACKING_TYPE_SESPARSE_V2"
          ]
        },
        "shared": {
          "type": "boolean",
          "description": "Is VMDK shared with other VMs."
        }
      }
    },
    "AssetFrame": {
      "description": "Contains data reported from an inventory source on an asset.",
      "type": "object",
      "properties": {
        "databaseDetails": {
          "description": "Asset information specific for logical databases.",
          "$ref": "DatabaseDetails"
        },
        "traceToken": {
          "description": "Optional. Trace token is optionally provided to assist with debugging and traceability.",
          "type": "string"
        },
        "machineDetails": {
          "$ref": "MachineDetails",
          "description": "Asset information specific for virtual machines."
        },
        "reportTime": {
          "format": "google-datetime",
          "description": "The time the data was reported.",
          "type": "string"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels as key value pairs."
        },
        "attributes": {
          "description": "Generic asset attributes.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "databaseDeploymentDetails": {
          "description": "Asset information specific for database deployments.",
          "$ref": "DatabaseDeploymentDetails"
        },
        "collectionType": {
          "enum": [
            "SOURCE_TYPE_UNKNOWN",
            "SOURCE_TYPE_UPLOAD",
            "SOURCE_TYPE_GUEST_OS_SCAN",
            "SOURCE_TYPE_INVENTORY_SCAN",
            "SOURCE_TYPE_CUSTOM",
            "SOURCE_TYPE_DISCOVERY_CLIENT"
          ],
          "enumDescriptions": [
            "Unspecified",
            "Manually uploaded file (e.g. CSV)",
            "Guest-level info",
            "Inventory-level scan",
            "Third-party owned sources.",
            "Discovery clients"
          ],
          "type": "string",
          "description": "Optional. Frame collection type, if not specified the collection type will be based on the source type of the source the frame was reported on."
        },
        "performanceSamples": {
          "type": "array",
          "description": "Asset performance data samples. Samples that are from more than 40 days ago or after tomorrow are ignored.",
          "items": {
            "$ref": "PerformanceSample"
          }
        }
      },
      "id": "AssetFrame"
    },
    "DatabaseSchema": {
      "id": "DatabaseSchema",
      "description": "Details of a database schema.",
      "type": "object",
      "properties": {
        "tablesSizeBytes": {
          "format": "int64",
          "description": "Optional. The total size of tables in bytes.",
          "type": "string"
        },
        "postgresql": {
          "$ref": "PostgreSqlSchemaDetails",
          "description": "Optional. Details of a PostgreSql schema."
        },
        "schemaName": {
          "description": "Required. The name of the schema.",
          "type": "string"
        },
        "objects": {
          "items": {
            "$ref": "DatabaseObjects"
          },
          "type": "array",
          "description": "Optional. List of details of objects by category."
        },
        "sqlServer": {
          "$ref": "SqlServerSchemaDetails",
          "description": "Optional. Details of a SqlServer schema."
        },
        "mysql": {
          "description": "Optional. Details of a Mysql schema.",
          "$ref": "MySqlSchemaDetails"
        }
      }
    },
    "AwsEc2PlatformDetails": {
      "type": "object",
      "properties": {
        "location": {
          "description": "The location of the machine in the AWS format.",
          "type": "string"
        },
        "machineTypeLabel": {
          "type": "string",
          "description": "AWS platform's machine type label."
        },
        "hyperthreading": {
          "type": "string",
          "description": "Optional. Whether the machine is hyperthreaded.",
          "enum": [
            "HYPERTHREADING_STATUS_UNSPECIFIED",
            "HYPERTHREADING_STATUS_DISABLED",
            "HYPERTHREADING_STATUS_ENABLED"
          ],
          "enumDescriptions": [
            "Simultaneous Multithreading status unknown.",
            "Simultaneous Multithreading is disabled or unavailable.",
            "Simultaneous Multithreading is enabled."
          ]
        }
      },
      "description": "AWS EC2 specific details.",
      "id": "AwsEc2PlatformDetails"
    },
    "PostgreSqlExtension": {
      "id": "PostgreSqlExtension",
      "type": "object",
      "properties": {
        "extension": {
          "description": "Required. The extension name.",
          "type": "string"
        },
        "version": {
          "description": "Required. The extension version.",
          "type": "string"
        }
      },
      "description": "PostgreSql extension."
    },
    "DatabaseDeploymentDetailsAggregatedStats": {
      "type": "object",
      "properties": {
        "databaseCount": {
          "description": "Output only. The number of databases in the deployment.",
          "type": "integer",
          "readOnly": true,
          "format": "int32"
        }
      },
      "description": "Aggregated stats for the database deployment.",
      "id": "DatabaseDeploymentDetailsAggregatedStats"
    },
    "PlatformDetails": {
      "id": "PlatformDetails",
      "type": "object",
      "properties": {
        "azureVmDetails": {
          "$ref": "AzureVmPlatformDetails",
          "description": "Azure VM specific details."
        },
        "awsEc2Details": {
          "description": "AWS EC2 specific details.",
          "$ref": "AwsEc2PlatformDetails"
        },
        "physicalDetails": {
          "$ref": "PhysicalPlatformDetails",
          "description": "Physical machines platform details."
        },
        "genericDetails": {
          "$ref": "GenericPlatformDetails",
          "description": "Generic platform details."
        },
        "vmwareDetails": {
          "$ref": "VmwarePlatformDetails",
          "description": "VMware specific details."
        }
      },
      "description": "Information about the platform."
    },
    "DatabaseInstanceNetwork": {
      "id": "DatabaseInstanceNetwork",
      "description": "Network details of a database instance.",
      "type": "object",
      "properties": {
        "hostNames": {
          "type": "array",
          "description": "Optional. The instance's host names.",
          "items": {
            "type": "string"
          }
        },
        "primaryMacAddress": {
          "type": "string",
          "description": "Optional. The instance's primary MAC address."
        },
        "ipAddresses": {
          "type": "array",
          "description": "Optional. The instance's IP addresses.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ListAssetsResponse": {
      "id": "ListAssetsResponse",
      "type": "object",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "A token identifying a page of results the server should return."
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached.",
          "type": "array"
        },
        "assets": {
          "description": "A list of assets.",
          "type": "array",
          "items": {
            "$ref": "Asset"
          }
        }
      },
      "description": "Response message for listing assets."
    },
    "DiskPartition": {
      "id": "DiskPartition",
      "type": "object",
      "properties": {
        "freeBytes": {
          "format": "int64",
          "description": "Partition free space.",
          "type": "string"
        },
        "fileSystem": {
          "type": "string",
          "description": "Partition file system."
        },
        "type": {
          "description": "Partition type.",
          "type": "string"
        },
        "capacityBytes": {
          "format": "int64",
          "description": "Partition capacity.",
          "type": "string"
        },
        "subPartitions": {
          "$ref": "DiskPartitionList",
          "description": "Sub-partitions."
        },
        "mountPoint": {
          "description": "Mount point (Linux/Windows) or drive letter (Windows).",
          "type": "string"
        },
        "uuid": {
          "type": "string",
          "description": "Partition UUID."
        }
      },
      "description": "Disk Partition details."
    },
    "Settings": {
      "id": "Settings",
      "description": "Describes the Migration Center settings related to the project.",
      "type": "object",
      "properties": {
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The name of the resource."
        },
        "disableCloudLogging": {
          "type": "boolean",
          "description": "Disable Cloud Logging for the Migration Center API. Users are billed for the logs."
        },
        "preferenceSet": {
          "type": "string",
          "description": "The preference set used by default for a project."
        }
      }
    },
    "PostgreSqlSchemaDetails": {
      "description": "Specific details for a PostgreSql schema.",
      "type": "object",
      "properties": {
        "foreignTablesCount": {
          "type": "integer",
          "description": "Optional. PostgreSql foreign tables.",
          "format": "int32"
        },
        "postgresqlExtensions": {
          "items": {
            "$ref": "PostgreSqlExtension"
          },
          "description": "Optional. PostgreSql extensions.",
          "type": "array"
        }
      },
      "id": "PostgreSqlSchemaDetails"
    },
    "DatabaseObjects": {
      "description": "Details of a group of database objects.",
      "type": "object",
      "properties": {
        "count": {
          "type": "string",
          "description": "Optional. The number of objects.",
          "format": "int64"
        },
        "category": {
          "description": "Optional. The category of the objects.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified type.",
            "Table.",
            "Index.",
            "Constraints.",
            "Views.",
            "Source code, e.g. procedures.",
            "Uncategorized objects."
          ],
          "enum": [
            "CATEGORY_UNSPECIFIED",
            "TABLE",
            "INDEX",
            "CONSTRAINTS",
            "VIEWS",
            "SOURCE_CODE",
            "OTHER"
          ]
        }
      },
      "id": "DatabaseObjects"
    },
    "ReportSummarySoleTenantNodeAllocation": {
      "description": "Represents the assets allocated to a specific Sole-Tenant node type.",
      "type": "object",
      "properties": {
        "node": {
          "description": "Sole Tenant node type, e.g. \"m3-node-128-3904\"",
          "$ref": "SoleTenantNodeType"
        },
        "nodeCount": {
          "type": "string",
          "description": "Count of this node type to be provisioned",
          "format": "int64"
        },
        "allocatedAssetCount": {
          "type": "string",
          "description": "Count of assets allocated to these nodes",
          "format": "int64"
        }
      },
      "id": "ReportSummarySoleTenantNodeAllocation"
    },
    "Location": {
      "type": "object",
      "properties": {
        "locationId": {
          "description": "The canonical id for this location. For example: `\"us-east1\"`.",
          "type": "string"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "description": "Service-specific metadata. For example the available capacity at the given location."
        },
        "name": {
          "type": "string",
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}"
        },
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
          "type": "string"
        }
      },
      "description": "A resource that represents a Google Cloud location.",
      "id": "Location"
    },
    "ListReportConfigsResponse": {
      "description": "Response message for listing report configs.",
      "type": "object",
      "properties": {
        "reportConfigs": {
          "type": "array",
          "description": "A list of report configs.",
          "items": {
            "$ref": "ReportConfig"
          }
        },
        "unreachable": {
          "type": "array",
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token identifying a page of results the server should return."
        }
      },
      "id": "ListReportConfigsResponse"
    },
    "OpenFileList": {
      "description": "Open file list.",
      "type": "object",
      "properties": {
        "entries": {
          "description": "Open file details entries.",
          "type": "array",
          "items": {
            "$ref": "OpenFileDetails"
          }
        }
      },
      "id": "OpenFileList"
    },
    "UpdateAssetRequest": {
      "id": "UpdateAssetRequest",
      "type": "object",
      "properties": {
        "updateMask": {
          "description": "Required. Field mask is used to specify the fields to be overwritten in the `Asset` resource by the update. The values specified in the `update_mask` field are relative to the resource, not the full request. A field will be overwritten if it is in the mask. A single * value in the mask lets you to overwrite all fields.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "asset": {
          "$ref": "Asset",
          "description": "Required. The resource being updated."
        },
        "requestId": {
          "type": "string",
          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
        }
      },
      "description": "A request to update an asset."
    },
    "AggregationResultCount": {
      "id": "AggregationResultCount",
      "type": "object",
      "properties": {
        "value": {
          "type": "string",
          "format": "int64"
        }
      },
      "description": "The result of a count aggregation."
    },
    "FrameViolationEntry": {
      "description": "A resource that contains a single violation of a reported `AssetFrame` resource.",
      "type": "object",
      "properties": {
        "field": {
          "type": "string",
          "description": "The field of the original frame where the violation occurred."
        },
        "violation": {
          "type": "string",
          "description": "A message describing the violation."
        }
      },
      "id": "FrameViolationEntry"
    },
    "DailyResourceUsageAggregationStats": {
      "type": "object",
      "properties": {
        "average": {
          "format": "float",
          "description": "Average usage value.",
          "type": "number"
        },
        "median": {
          "description": "Median usage value.",
          "type": "number",
          "format": "float"
        },
        "ninteyFifthPercentile": {
          "format": "float",
          "description": "95th percentile usage value.",
          "type": "number"
        },
        "peak": {
          "type": "number",
          "description": "Peak usage value.",
          "format": "float"
        }
      },
      "description": "Statistical aggregation of samples for a single resource usage.",
      "id": "DailyResourceUsageAggregationStats"
    },
    "ListImportDataFilesResponse": {
      "type": "object",
      "properties": {
        "importDataFiles": {
          "description": "The list of import data files.",
          "type": "array",
          "items": {
            "$ref": "ImportDataFile"
          }
        },
        "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": {
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached.",
          "type": "array"
        }
      },
      "description": "Response for listing payload files of an import job.",
      "id": "ListImportDataFilesResponse"
    },
    "NetworkAdapterList": {
      "id": "NetworkAdapterList",
      "description": "List of network adapters.",
      "type": "object",
      "properties": {
        "entries": {
          "type": "array",
          "description": "Network adapter entries.",
          "items": {
            "$ref": "NetworkAdapterDetails"
          }
        }
      }
    },
    "ErrorFrame": {
      "description": "Message representing a frame which failed to be processed due to an error.",
      "type": "object",
      "properties": {
        "ingestionTime": {
          "description": "Output only. Frame ingestion time.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        },
        "name": {
          "readOnly": true,
          "description": "Output only. The identifier of the ErrorFrame.",
          "type": "string"
        },
        "violations": {
          "readOnly": true,
          "items": {
            "$ref": "FrameViolationEntry"
          },
          "type": "array",
          "description": "Output only. All the violations that were detected for the frame."
        },
        "originalFrame": {
          "description": "Output only. The frame that was originally reported.",
          "readOnly": true,
          "$ref": "AssetFrame"
        }
      },
      "id": "ErrorFrame"
    },
    "DiskEntry": {
      "id": "DiskEntry",
      "description": "Single disk entry.",
      "type": "object",
      "properties": {
        "interfaceType": {
          "description": "Disks interface type.",
          "type": "string",
          "enumDescriptions": [
            "Interface type unknown or unspecified.",
            "IDE interface type.",
            "SATA interface type.",
            "SAS interface type.",
            "SCSI interface type.",
            "NVME interface type.",
            "FC interface type.",
            "iSCSI interface type."
          ],
          "enum": [
            "INTERFACE_TYPE_UNSPECIFIED",
            "IDE",
            "SATA",
            "SAS",
            "SCSI",
            "NVME",
            "FC",
            "ISCSI"
          ]
        },
        "partitions": {
          "description": "Partition layout.",
          "$ref": "DiskPartitionList"
        },
        "capacityBytes": {
          "format": "int64",
          "type": "string",
          "description": "Disk capacity."
        },
        "diskLabel": {
          "description": "Disk label.",
          "type": "string"
        },
        "diskLabelType": {
          "type": "string",
          "description": "Disk label type (e.g. BIOS/GPT)"
        },
        "vmware": {
          "$ref": "VmwareDiskConfig",
          "description": "VMware disk details."
        },
        "freeBytes": {
          "format": "int64",
          "description": "Disk free space.",
          "type": "string"
        },
        "hwAddress": {
          "description": "Disk hardware address (e.g. 0:1 for SCSI).",
          "type": "string"
        }
      }
    },
    "OperationMetadata": {
      "id": "OperationMetadata",
      "description": "Represents the metadata of the long-running operation.",
      "type": "object",
      "properties": {
        "endTime": {
          "readOnly": true,
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. The time the operation finished running."
        },
        "requestedCancellation": {
          "readOnly": true,
          "type": "boolean",
          "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`."
        },
        "statusMessage": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Human-readable status of the operation, if any."
        },
        "verb": {
          "description": "Output only. Name of the verb executed by the operation.",
          "type": "string",
          "readOnly": true
        },
        "apiVersion": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. API version used to start the operation."
        },
        "createTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The time the operation was created.",
          "type": "string"
        },
        "target": {
          "type": "string",
          "description": "Output only. Server-defined resource path for the target of the operation.",
          "readOnly": true
        }
      }
    },
    "RegionPreferences": {
      "id": "RegionPreferences",
      "description": "The user preferences relating to target regions.",
      "type": "object",
      "properties": {
        "preferredRegions": {
          "items": {
            "type": "string"
          },
          "description": "A list of preferred regions, ordered by the most preferred region first. Set only valid Google Cloud region names. See https://cloud.google.com/compute/docs/regions-zones for available regions.",
          "type": "array"
        }
      }
    },
    "ImportRowError": {
      "id": "ImportRowError",
      "description": "A resource that reports the import job errors at row level.",
      "type": "object",
      "properties": {
        "errors": {
          "items": {
            "$ref": "ImportError"
          },
          "description": "The list of errors detected in the row.",
          "type": "array"
        },
        "csvError": {
          "$ref": "ImportRowErrorCsvErrorDetails",
          "description": "Error details for a CSV file."
        },
        "vmName": {
          "description": "The name of the VM in the row.",
          "type": "string"
        },
        "xlsxError": {
          "description": "Error details for an XLSX file.",
          "$ref": "ImportRowErrorXlsxErrorDetails"
        },
        "assetTitle": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The asset title."
        },
        "vmUuid": {
          "description": "The VM UUID.",
          "type": "string"
        },
        "archiveError": {
          "description": "Error details for an archive file.",
          "$ref": "ImportRowErrorArchiveErrorDetails"
        },
        "rowNumber": {
          "deprecated": true,
          "type": "integer",
          "description": "The row number where the error was detected.",
          "format": "int32"
        }
      }
    },
    "NetworkConnectionList": {
      "description": "Network connection list.",
      "type": "object",
      "properties": {
        "entries": {
          "description": "Network connection entries.",
          "type": "array",
          "items": {
            "$ref": "NetworkConnection"
          }
        }
      },
      "id": "NetworkConnectionList"
    },
    "DatabaseInstance": {
      "id": "DatabaseInstance",
      "type": "object",
      "properties": {
        "instanceName": {
          "type": "string",
          "description": "Optional. The instance's name."
        },
        "network": {
          "$ref": "DatabaseInstanceNetwork",
          "description": "Optional. Networking details."
        },
        "role": {
          "description": "Optional. The instance role in the database engine.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified.",
            "Primary.",
            "Secondary.",
            "Arbiter."
          ],
          "enum": [
            "ROLE_UNSPECIFIED",
            "PRIMARY",
            "SECONDARY",
            "ARBITER"
          ]
        }
      },
      "description": "Details of a database instance."
    },
    "PerformanceSample": {
      "type": "object",
      "properties": {
        "network": {
          "$ref": "NetworkUsageSample",
          "description": "Network usage sample."
        },
        "sampleTime": {
          "description": "Time the sample was collected. If omitted, the frame report time will be used.",
          "type": "string",
          "format": "google-datetime"
        },
        "memory": {
          "$ref": "MemoryUsageSample",
          "description": "Memory usage sample."
        },
        "disk": {
          "$ref": "DiskUsageSample",
          "description": "Disk usage sample."
        },
        "cpu": {
          "description": "CPU usage sample.",
          "$ref": "CpuUsageSample"
        }
      },
      "description": "Performance data sample.",
      "id": "PerformanceSample"
    },
    "ListPreferenceSetsResponse": {
      "description": "Response message for listing preference sets.",
      "type": "object",
      "properties": {
        "unreachable": {
          "type": "array",
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        },
        "preferenceSets": {
          "items": {
            "$ref": "PreferenceSet"
          },
          "description": "The list of PreferenceSets",
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token identifying a page of results the server should return."
        }
      },
      "id": "ListPreferenceSetsResponse"
    },
    "FstabEntry": {
      "description": "Single fstab entry.",
      "type": "object",
      "properties": {
        "mntops": {
          "description": "Mount options associated with the filesystem.",
          "type": "string"
        },
        "passno": {
          "type": "integer",
          "description": "Used by the fsck(8) program to determine the order in which filesystem checks are done at reboot time.",
          "format": "int32"
        },
        "file": {
          "description": "The mount point for the filesystem.",
          "type": "string"
        },
        "vfstype": {
          "description": "The type of the filesystem.",
          "type": "string"
        },
        "freq": {
          "description": "Used by dump to determine which filesystems need to be dumped.",
          "type": "integer",
          "format": "int32"
        },
        "spec": {
          "description": "The block special device or remote filesystem to be mounted.",
          "type": "string"
        }
      },
      "id": "FstabEntry"
    },
    "SqlServerTraceFlag": {
      "description": "SQL Server trace flag details.",
      "type": "object",
      "properties": {
        "traceFlagName": {
          "type": "string",
          "description": "Required. The trace flag name."
        },
        "scope": {
          "description": "Required. The trace flag scope.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified.",
            "Off.",
            "Global.",
            "Session."
          ],
          "enum": [
            "SCOPE_UNSPECIFIED",
            "OFF",
            "GLOBAL",
            "SESSION"
          ]
        }
      },
      "id": "SqlServerTraceFlag"
    },
    "MachineArchitectureDetails": {
      "type": "object",
      "properties": {
        "hyperthreading": {
          "type": "string",
          "description": "CPU hyper-threading support.",
          "enum": [
            "CPU_HYPER_THREADING_UNSPECIFIED",
            "DISABLED",
            "ENABLED"
          ],
          "enumDescriptions": [
            "Unspecified or unknown.",
            "Hyper-threading is disabled.",
            "Hyper-threading is enabled."
          ]
        },
        "vendor": {
          "type": "string",
          "description": "Hardware vendor."
        },
        "bios": {
          "$ref": "BiosDetails",
          "description": "BIOS Details."
        },
        "cpuThreadCount": {
          "deprecated": true,
          "type": "integer",
          "description": "Deprecated: use MachineDetails.core_count instead. Number of CPU threads allocated to the machine.",
          "format": "int32"
        },
        "cpuArchitecture": {
          "description": "CPU architecture, e.g., \"x64-based PC\", \"x86_64\", \"i686\" etc.",
          "type": "string"
        },
        "cpuManufacturer": {
          "type": "string",
          "description": "Optional. CPU manufacturer, e.g., \"Intel\", \"AMD\"."
        },
        "cpuSocketCount": {
          "format": "int32",
          "description": "Number of processor sockets allocated to the machine.",
          "type": "integer"
        },
        "firmwareType": {
          "type": "string",
          "description": "Firmware type.",
          "enum": [
            "FIRMWARE_TYPE_UNSPECIFIED",
            "BIOS",
            "EFI"
          ],
          "enumDescriptions": [
            "Unspecified or unknown.",
            "BIOS firmware.",
            "EFI firmware."
          ]
        },
        "cpuName": {
          "type": "string",
          "description": "CPU name, e.g., \"Intel Xeon E5-2690\", \"AMD EPYC 7571\" etc."
        }
      },
      "description": "Details of the machine architecture.",
      "id": "MachineArchitectureDetails"
    },
    "AggregateAssetsValuesResponse": {
      "id": "AggregateAssetsValuesResponse",
      "description": "A response to a request to aggregated assets values.",
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "description": "The aggregation results.",
          "items": {
            "$ref": "AggregationResult"
          }
        }
      }
    },
    "PostgreSqlProperty": {
      "id": "PostgreSqlProperty",
      "description": "PostgreSql property.",
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Required. The property is enabled."
        },
        "numericValue": {
          "description": "Required. The property numeric value.",
          "type": "string",
          "format": "int64"
        },
        "property": {
          "type": "string",
          "description": "Required. The property name."
        }
      }
    },
    "NetworkUsageSample": {
      "id": "NetworkUsageSample",
      "description": "Network usage sample. Values are across all network interfaces.",
      "type": "object",
      "properties": {
        "averageIngressBps": {
          "type": "number",
          "description": "Average network ingress in B/s sampled over a short window. Must be non-negative.",
          "format": "float"
        },
        "averageEgressBps": {
          "type": "number",
          "description": "Average network egress in B/s sampled over a short window. Must be non-negative.",
          "format": "float"
        }
      }
    },
    "OutputFileList": {
      "description": "Contains a list of output files.",
      "type": "object",
      "properties": {
        "entries": {
          "type": "array",
          "description": "Output only. List of output files.",
          "readOnly": true,
          "items": {
            "$ref": "OutputFile"
          }
        }
      },
      "id": "OutputFileList"
    },
    "NfsExport": {
      "id": "NfsExport",
      "type": "object",
      "properties": {
        "exportDirectory": {
          "description": "The directory being exported.",
          "type": "string"
        },
        "hosts": {
          "items": {
            "type": "string"
          },
          "description": "The hosts or networks to which the export is being shared.",
          "type": "array"
        }
      },
      "description": "NFS export."
    },
    "PhysicalPlatformDetails": {
      "description": "Platform specific details for Physical Machines.",
      "type": "object",
      "properties": {
        "hyperthreading": {
          "enumDescriptions": [
            "Simultaneous Multithreading status unknown.",
            "Simultaneous Multithreading is disabled or unavailable.",
            "Simultaneous Multithreading is enabled."
          ],
          "enum": [
            "HYPERTHREADING_STATUS_UNSPECIFIED",
            "HYPERTHREADING_STATUS_DISABLED",
            "HYPERTHREADING_STATUS_ENABLED"
          ],
          "description": "Whether the machine is hyperthreaded.",
          "type": "string"
        },
        "location": {
          "type": "string",
          "description": "Free text representation of the machine location. The format of this field should not be relied on. Different machines in the same location may have different string values for this field."
        }
      },
      "id": "PhysicalPlatformDetails"
    },
    "DiskPartitionList": {
      "id": "DiskPartitionList",
      "type": "object",
      "properties": {
        "entries": {
          "items": {
            "$ref": "DiskPartition"
          },
          "type": "array",
          "description": "Partition entries."
        }
      },
      "description": "Disk partition list."
    },
    "AssetsExportJobPerformanceData": {
      "id": "AssetsExportJobPerformanceData",
      "type": "object",
      "properties": {
        "maxDays": {
          "format": "int32",
          "type": "integer",
          "description": "Optional. When this value is set to a positive integer, performance data will be returned for the most recent days for which data is available. When this value is unset (or set to zero), all available data is returned. The maximum value is 420; values above 420 will be coerced to 420. If unset (0 value) a default value of 40 will be used."
        }
      },
      "description": "Configuration for performance data exports."
    },
    "CsvOutputFile": {
      "type": "object",
      "properties": {
        "signedUri": {
          "description": "Output only. Signed URI destination.",
          "readOnly": true,
          "$ref": "SignedUri"
        },
        "rowCount": {
          "type": "integer",
          "description": "Output only. Number of rows in the file.",
          "readOnly": true,
          "format": "int32"
        },
        "columnsCount": {
          "readOnly": true,
          "format": "int32",
          "description": "Output only. Number of columns in the file.",
          "type": "integer"
        }
      },
      "description": "Contains a single output file of type CSV.",
      "id": "CsvOutputFile"
    },
    "DiskPartitionDetails": {
      "description": "Disk partition details.",
      "type": "object",
      "properties": {
        "partitions": {
          "description": "Optional. List of partitions.",
          "$ref": "DiskPartitionList"
        },
        "totalCapacityBytes": {
          "readOnly": true,
          "format": "int64",
          "type": "string",
          "description": "Output only. Total capacity of all partitions."
        },
        "freeSpaceBytes": {
          "type": "string",
          "description": "Output only. Total free space of all partitions.",
          "readOnly": true,
          "format": "int64"
        }
      },
      "id": "DiskPartitionDetails"
    },
    "AggregationFrequency": {
      "id": "AggregationFrequency",
      "type": "object",
      "properties": {},
      "description": "Frequency distribution of all field values."
    },
    "Operation": {
      "id": "Operation",
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "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.",
          "type": "object",
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          }
        },
        "error": {
          "$ref": "Status",
          "description": "The error result of the operation in case of failure or cancellation."
        },
        "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`.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "done": {
          "type": "boolean",
          "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."
        }
      }
    },
    "ImportRowErrorCsvErrorDetails": {
      "id": "ImportRowErrorCsvErrorDetails",
      "description": "Error details for a CSV file.",
      "type": "object",
      "properties": {
        "rowNumber": {
          "description": "The row number where the error was detected.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "ReportSummarySoleTenantFinding": {
      "id": "ReportSummarySoleTenantFinding",
      "type": "object",
      "properties": {
        "allocatedRegions": {
          "type": "array",
          "description": "Set of regions in which the assets are allocated",
          "items": {
            "type": "string"
          }
        },
        "nodeAllocations": {
          "items": {
            "$ref": "ReportSummarySoleTenantNodeAllocation"
          },
          "description": "Set of per-nodetype allocation records",
          "type": "array"
        },
        "allocatedAssetCount": {
          "format": "int64",
          "description": "Count of assets which are allocated",
          "type": "string"
        }
      },
      "description": "A set of findings that applies to assets destined for Sole-Tenant nodes."
    },
    "ComputeEngineMigrationTarget": {
      "description": "Compute engine migration target.",
      "type": "object",
      "properties": {
        "shape": {
          "$ref": "ComputeEngineShapeDescriptor",
          "description": "Description of the suggested shape for the migration target."
        }
      },
      "id": "ComputeEngineMigrationTarget"
    },
    "Money": {
      "description": "Represents an amount of money with its currency type.",
      "type": "object",
      "properties": {
        "currencyCode": {
          "type": "string",
          "description": "The three-letter currency code defined in ISO 4217."
        },
        "units": {
          "format": "int64",
          "type": "string",
          "description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar."
        },
        "nanos": {
          "format": "int32",
          "description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.",
          "type": "integer"
        }
      },
      "id": "Money"
    },
    "ListReportsResponse": {
      "type": "object",
      "properties": {
        "reports": {
          "items": {
            "$ref": "Report"
          },
          "type": "array",
          "description": "The list of Reports."
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token identifying a page of results the server should return."
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached.",
          "type": "array"
        }
      },
      "description": "Response message for listing Reports.",
      "id": "ListReportsResponse"
    },
    "ListSourcesResponse": {
      "type": "object",
      "properties": {
        "sources": {
          "type": "array",
          "description": "The list of sources.",
          "items": {
            "$ref": "Source"
          }
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached.",
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token identifying a page of results the server should return."
        }
      },
      "description": "Response message for listing sources.",
      "id": "ListSourcesResponse"
    },
    "DiskUsageSample": {
      "type": "object",
      "properties": {
        "averageReadIops": {
          "format": "float",
          "type": "number",
          "description": "Optional. Average read IOPS sampled over a short window. Must be non-negative. If both read and write are zero they are ignored."
        },
        "averageWriteIops": {
          "format": "float",
          "description": "Optional. Average write IOPS sampled over a short window. Must be non-negative. If both read and write are zero they are ignored.",
          "type": "number"
        },
        "averageIops": {
          "format": "float",
          "description": "Optional. Average IOPS sampled over a short window. Must be non-negative. If read or write are set, the sum of read and write will override the value of the average_iops.",
          "type": "number"
        }
      },
      "description": "Disk usage sample. Values are across all disks.",
      "id": "DiskUsageSample"
    },
    "Aggregation": {
      "type": "object",
      "properties": {
        "field": {
          "description": "The name of the field on which to aggregate.",
          "type": "string"
        },
        "sum": {
          "description": "Sum over a numeric field.",
          "$ref": "AggregationSum"
        },
        "frequency": {
          "$ref": "AggregationFrequency",
          "description": "Creates a frequency distribution of all field values."
        },
        "count": {
          "$ref": "AggregationCount",
          "description": "Count the number of matching objects."
        },
        "histogram": {
          "description": "Creates a bucketed histogram of field values.",
          "$ref": "AggregationHistogram"
        }
      },
      "description": "Message describing an aggregation. The message includes the aggregation type, parameters, and the field on which to perform the aggregation.",
      "id": "Aggregation"
    },
    "VmwareEnginePreferences": {
      "id": "VmwareEnginePreferences",
      "description": "The user preferences relating to Google Cloud VMware Engine target platform.",
      "type": "object",
      "properties": {
        "commitmentPlan": {
          "enum": [
            "COMMITMENT_PLAN_UNSPECIFIED",
            "ON_DEMAND",
            "COMMITMENT_1_YEAR_MONTHLY_PAYMENTS",
            "COMMITMENT_3_YEAR_MONTHLY_PAYMENTS",
            "COMMITMENT_1_YEAR_UPFRONT_PAYMENT",
            "COMMITMENT_3_YEAR_UPFRONT_PAYMENT"
          ],
          "enumDescriptions": [
            "Unspecified commitment plan.",
            "No commitment plan (on-demand usage).",
            "1 year commitment (monthly payments).",
            "3 year commitment (monthly payments).",
            "1 year commitment (upfront payment).",
            "3 years commitment (upfront payment)."
          ],
          "type": "string",
          "description": "Commitment plan to consider when calculating costs for virtual machine insights and recommendations. If you are unsure which value to set, a 3 year commitment plan is often a good value to start with."
        },
        "memoryOvercommitRatio": {
          "type": "number",
          "description": "Memory overcommit ratio. Acceptable values are 1.0, 1.25, 1.5, 1.75 and 2.0.",
          "format": "double"
        },
        "cpuOvercommitRatio": {
          "format": "double",
          "description": "CPU overcommit ratio. Acceptable values are between 1.0 and 8.0, with 0.1 increment.",
          "type": "number"
        },
        "storageDeduplicationCompressionRatio": {
          "type": "number",
          "description": "The Deduplication and Compression ratio is based on the logical (Used Before) space required to store data before applying deduplication and compression, in relation to the physical (Used After) space required after applying deduplication and compression. Specifically, the ratio is the Used Before space divided by the Used After space. For example, if the Used Before space is 3 GB, but the physical Used After space is 1 GB, the deduplication and compression ratio is 3x. Acceptable values are between 1.0 and 4.0.",
          "format": "double"
        }
      }
    },
    "DatabaseDeploymentTopology": {
      "id": "DatabaseDeploymentTopology",
      "description": "Details of database deployment's topology.",
      "type": "object",
      "properties": {
        "memoryBytes": {
          "description": "Optional. Total memory in bytes.",
          "type": "string",
          "format": "int64"
        },
        "physicalCoreLimit": {
          "type": "integer",
          "description": "Optional. Number of total physical cores limited by db deployment.",
          "format": "int32"
        },
        "coreLimit": {
          "description": "Optional. Number of total logical cores limited by db deployment.",
          "type": "integer",
          "format": "int32"
        },
        "coreCount": {
          "description": "Optional. Number of total logical cores.",
          "type": "integer",
          "format": "int32"
        },
        "diskAllocatedBytes": {
          "type": "string",
          "description": "Optional. Disk allocated in bytes.",
          "format": "int64"
        },
        "physicalCoreCount": {
          "description": "Optional. Number of total physical cores.",
          "type": "integer",
          "format": "int32"
        },
        "instances": {
          "description": "Optional. List of database instances.",
          "type": "array",
          "items": {
            "$ref": "DatabaseInstance"
          }
        },
        "diskUsedBytes": {
          "format": "int64",
          "type": "string",
          "description": "Optional. Disk used in bytes."
        },
        "memoryLimitBytes": {
          "format": "int64",
          "description": "Optional. Total memory in bytes limited by db deployment.",
          "type": "string"
        }
      }
    },
    "AssetList": {
      "type": "object",
      "properties": {
        "assetIds": {
          "description": "Required. A list of asset IDs",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Lists the asset IDs of all assets.",
      "id": "AssetList"
    },
    "FstabEntryList": {
      "id": "FstabEntryList",
      "type": "object",
      "properties": {
        "entries": {
          "description": "Fstab entries.",
          "type": "array",
          "items": {
            "$ref": "FstabEntry"
          }
        }
      },
      "description": "Fstab content."
    },
    "SoleTenancyPreferences": {
      "id": "SoleTenancyPreferences",
      "description": "Preferences concerning Sole Tenancy nodes and VMs.",
      "type": "object",
      "properties": {
        "cpuOvercommitRatio": {
          "format": "double",
          "description": "CPU overcommit ratio. Acceptable values are between 1.0 and 2.0 inclusive.",
          "type": "number"
        },
        "hostMaintenancePolicy": {
          "type": "string",
          "description": "Sole Tenancy nodes maintenance policy.",
          "enum": [
            "HOST_MAINTENANCE_POLICY_UNSPECIFIED",
            "HOST_MAINTENANCE_POLICY_DEFAULT",
            "HOST_MAINTENANCE_POLICY_RESTART_IN_PLACE",
            "HOST_MAINTENANCE_POLICY_MIGRATE_WITHIN_NODE_GROUP"
          ],
          "enumDescriptions": [
            "Unspecified host maintenance policy.",
            "Default host maintenance policy.",
            "Restart in place host maintenance policy.",
            "Migrate within node group host maintenance policy."
          ]
        },
        "nodeTypes": {
          "description": "A list of sole tenant node types. An empty list means that all possible node types will be considered.",
          "type": "array",
          "items": {
            "$ref": "SoleTenantNodeType"
          }
        },
        "commitmentPlan": {
          "type": "string",
          "description": "Commitment plan to consider when calculating costs for virtual machine insights and recommendations. If you are unsure which value to set, a 3 year commitment plan is often a good value to start with.",
          "enum": [
            "COMMITMENT_PLAN_UNSPECIFIED",
            "ON_DEMAND",
            "COMMITMENT_1_YEAR",
            "COMMITMENT_3_YEAR"
          ],
          "enumDescriptions": [
            "Unspecified commitment plan.",
            "No commitment plan (on-demand usage).",
            "1 year commitment.",
            "3 years commitment."
          ]
        }
      }
    },
    "Group": {
      "id": "Group",
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "Optional. The description of the group."
        },
        "createTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The timestamp when the group was created.",
          "type": "string"
        },
        "updateTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The timestamp when the group was last updated.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Output only. The name of the group.",
          "readOnly": true
        },
        "displayName": {
          "description": "Optional. User-friendly display name.",
          "type": "string"
        },
        "labels": {
          "description": "Labels as key value pairs.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "description": "A resource that represents an asset group. The purpose of an asset group is to bundle a set of assets that have something in common, while allowing users to add annotations to the group. An asset can belong to multiple groups."
    },
    "Asset": {
      "id": "Asset",
      "description": "An asset represents a resource in your environment. Asset types include virtual machines and databases.",
      "type": "object",
      "properties": {
        "assignedGroups": {
          "description": "Output only. The list of groups that the asset is assigned to.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "databaseDetails": {
          "readOnly": true,
          "$ref": "DatabaseDetails",
          "description": "Output only. Asset information specific for logical databases."
        },
        "updateTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The timestamp when the asset was last updated.",
          "type": "string"
        },
        "hideReason": {
          "description": "Optional. An optional reason for marking this asset as hidden.",
          "type": "string"
        },
        "sources": {
          "type": "array",
          "description": "Output only. The list of sources contributing to the asset.",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The full name of the asset."
        },
        "performanceData": {
          "description": "Output only. Performance data for the asset.",
          "readOnly": true,
          "$ref": "AssetPerformanceData"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels as key value pairs."
        },
        "hidden": {
          "type": "boolean",
          "description": "Optional. Indicates if the asset is hidden."
        },
        "attributes": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Generic asset attributes."
        },
        "databaseDeploymentDetails": {
          "readOnly": true,
          "$ref": "DatabaseDeploymentDetails",
          "description": "Output only. Asset information specific for database deployments."
        },
        "hideTime": {
          "readOnly": true,
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. The timestamp when the asset was marked as hidden."
        },
        "insightList": {
          "description": "Output only. The list of insights associated with the asset.",
          "readOnly": true,
          "$ref": "InsightList"
        },
        "title": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Server generated human readable name of the asset."
        },
        "createTime": {
          "description": "Output only. The timestamp when the asset was created.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        },
        "machineDetails": {
          "readOnly": true,
          "$ref": "MachineDetails",
          "description": "Output only. Asset information specific for virtual and physical machines."
        }
      }
    },
    "RunImportJobRequest": {
      "type": "object",
      "properties": {
        "requestId": {
          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
          "type": "string"
        }
      },
      "description": "A request to run an import job.",
      "id": "RunImportJobRequest"
    },
    "BatchUpdateAssetsRequest": {
      "description": "A request to update a list of assets.",
      "type": "object",
      "properties": {
        "requests": {
          "description": "Required. The request message specifying the resources to update. A maximum of 1000 assets can be modified in a batch.",
          "type": "array",
          "items": {
            "$ref": "UpdateAssetRequest"
          }
        }
      },
      "id": "BatchUpdateAssetsRequest"
    },
    "MemoryUsageSample": {
      "description": "Memory usage sample.",
      "type": "object",
      "properties": {
        "utilizedPercentage": {
          "type": "number",
          "description": "Percentage of system memory utilized. Must be in the interval [0, 100].",
          "format": "float"
        }
      },
      "id": "MemoryUsageSample"
    },
    "DiscoveryClient": {
      "description": "Represents an installed Migration Center Discovery Client instance.",
      "type": "object",
      "properties": {
        "createTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. Time when the discovery client was first created.",
          "type": "string"
        },
        "version": {
          "type": "string",
          "description": "Output only. Client version, as reported in recent heartbeat.",
          "readOnly": true
        },
        "expireTime": {
          "description": "Optional. Client expiration time in UTC. If specified, the backend will not accept new frames after this time.",
          "type": "string",
          "format": "google-datetime"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. Labels as key value pairs."
        },
        "source": {
          "type": "string",
          "description": "Required. Immutable. Full name of the source object associated with this discovery client."
        },
        "name": {
          "readOnly": true,
          "description": "Output only. Identifier. Full name of this discovery client.",
          "type": "string"
        },
        "updateTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. Time when the discovery client was last updated. This value is not updated by heartbeats, to view the last heartbeat time please refer to the `heartbeat_time` field.",
          "type": "string"
        },
        "errors": {
          "items": {
            "$ref": "Status"
          },
          "readOnly": true,
          "description": "Output only. Errors affecting client functionality.",
          "type": "array"
        },
        "displayName": {
          "type": "string",
          "description": "Optional. Free text display name. Maximum length is 63 characters."
        },
        "state": {
          "enumDescriptions": [
            "Client state is unspecified.",
            "Client is active.",
            "Client is offline.",
            "Client is in a degraded state. See the `errors` field for details.",
            "Client has expired. See the expire_time field for the expire time."
          ],
          "readOnly": true,
          "enum": [
            "STATE_UNSPECIFIED",
            "ACTIVE",
            "OFFLINE",
            "DEGRADED",
            "EXPIRED"
          ],
          "description": "Output only. Current state of the discovery client.",
          "type": "string"
        },
        "heartbeatTime": {
          "readOnly": true,
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. Last heartbeat time. Healthy clients are expected to send heartbeats regularly (normally every few minutes)."
        },
        "description": {
          "type": "string",
          "description": "Optional. Free text description. Maximum length is 1000 characters."
        },
        "ttl": {
          "format": "google-duration",
          "description": "Optional. Input only. Client time-to-live. If specified, the backend will not accept new frames after this time. This field is input only. The derived expiration time is provided as output through the `expire_time` field.",
          "type": "string"
        },
        "serviceAccount": {
          "type": "string",
          "description": "Required. Service account used by the discovery client for various operation."
        },
        "signalsEndpoint": {
          "type": "string",
          "description": "Output only. This field is intended for internal use.",
          "readOnly": true
        }
      },
      "id": "DiscoveryClient"
    },
    "SignedUris": {
      "description": "Contains a list of Signed URIs.",
      "type": "object",
      "properties": {
        "signedUris": {
          "description": "Output only. List of signed URIs.",
          "type": "array",
          "items": {
            "$ref": "SignedUri"
          },
          "readOnly": true
        }
      },
      "id": "SignedUris"
    },
    "MachinePreferences": {
      "id": "MachinePreferences",
      "description": "The type of machines to consider when calculating virtual machine migration insights and recommendations. Not all machine types are available in all zones and regions.",
      "type": "object",
      "properties": {
        "allowedMachineSeries": {
          "items": {
            "$ref": "MachineSeries"
          },
          "type": "array",
          "description": "Compute Engine machine series to consider for insights and recommendations. If empty, no restriction is applied on the machine series."
        }
      }
    },
    "Frames": {
      "id": "Frames",
      "description": "Collection of frame data.",
      "type": "object",
      "properties": {
        "framesData": {
          "items": {
            "$ref": "AssetFrame"
          },
          "description": "A repeated field of asset data.",
          "type": "array"
        }
      }
    },
    "ReportSummaryHistogramChartData": {
      "id": "ReportSummaryHistogramChartData",
      "description": "A Histogram Chart shows a distribution of values into buckets, showing a count of values which fall into a bucket.",
      "type": "object",
      "properties": {
        "buckets": {
          "description": "Buckets in the histogram. There will be `n+1` buckets matching `n` lower bounds in the request. The first bucket will be from -infinity to the first bound. Subsequent buckets will be between one bound and the next. The final bucket will be from the final bound to infinity.",
          "type": "array",
          "items": {
            "$ref": "ReportSummaryHistogramChartDataBucket"
          }
        }
      }
    },
    "RunningProcess": {
      "id": "RunningProcess",
      "description": "Guest OS running process details.",
      "type": "object",
      "properties": {
        "exePath": {
          "description": "Process binary path.",
          "type": "string"
        },
        "cmdline": {
          "description": "Process full command line.",
          "type": "string"
        },
        "user": {
          "type": "string",
          "description": "User running the process."
        },
        "pid": {
          "description": "Process ID.",
          "type": "string",
          "format": "int64"
        },
        "attributes": {
          "description": "Process extended attributes.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "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).",
      "type": "object",
      "properties": {
        "details": {
          "items": {
            "type": "object",
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL.",
              "type": "any"
            }
          },
          "type": "array",
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use."
        },
        "message": {
          "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.",
          "type": "string"
        },
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "Status"
    },
    "AggregationSum": {
      "type": "object",
      "properties": {},
      "description": "Sum of field values.",
      "id": "AggregationSum"
    },
    "FileValidationReport": {
      "id": "FileValidationReport",
      "type": "object",
      "properties": {
        "fileErrors": {
          "type": "array",
          "description": "List of file level errors.",
          "items": {
            "$ref": "ImportError"
          }
        },
        "partialReport": {
          "description": "Flag indicating that processing was aborted due to maximum number of errors.",
          "type": "boolean"
        },
        "rowErrors": {
          "items": {
            "$ref": "ImportRowError"
          },
          "description": "Partial list of rows that encountered validation error.",
          "type": "array"
        },
        "fileName": {
          "description": "The name of the file.",
          "type": "string"
        }
      },
      "description": "A resource that aggregates the validation errors found in an import job file."
    },
    "HostsEntryList": {
      "type": "object",
      "properties": {
        "entries": {
          "type": "array",
          "description": "Hosts entries.",
          "items": {
            "$ref": "HostsEntry"
          }
        }
      },
      "description": "Hosts content.",
      "id": "HostsEntryList"
    },
    "AggregateAssetsValuesRequest": {
      "id": "AggregateAssetsValuesRequest",
      "type": "object",
      "properties": {
        "aggregations": {
          "items": {
            "$ref": "Aggregation"
          },
          "type": "array",
          "description": "Array of aggregations to perform. Up to 25 aggregations can be defined."
        },
        "filter": {
          "type": "string",
          "description": "Optional. The aggregation will be performed on assets that match the provided filter."
        },
        "showHidden": {
          "description": "Optional. When this value is set to 'true' the response will include all assets, including those that are hidden.",
          "type": "boolean"
        }
      },
      "description": "A request to aggregate one or more values."
    },
    "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); }",
      "type": "object",
      "properties": {},
      "id": "Empty"
    },
    "NetworkConnection": {
      "id": "NetworkConnection",
      "type": "object",
      "properties": {
        "localIpAddress": {
          "description": "Local IP address.",
          "type": "string"
        },
        "protocol": {
          "description": "Connection protocol (e.g. TCP/UDP).",
          "type": "string"
        },
        "processName": {
          "description": "Process or service name.",
          "type": "string"
        },
        "localPort": {
          "type": "integer",
          "description": "Local port.",
          "format": "int32"
        },
        "pid": {
          "format": "int64",
          "type": "string",
          "description": "Process ID."
        },
        "remoteIpAddress": {
          "description": "Remote IP address.",
          "type": "string"
        },
        "remotePort": {
          "type": "integer",
          "description": "Remote port.",
          "format": "int32"
        },
        "state": {
          "enumDescriptions": [
            "Connection state is unknown or unspecified.",
            "The connection is being opened.",
            "The connection is open.",
            "Listening for incoming connections.",
            "The connection is being closed.",
            "The connection is closed."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "OPENING",
            "OPEN",
            "LISTEN",
            "CLOSING",
            "CLOSED"
          ],
          "description": "Network connection state.",
          "type": "string"
        }
      }
    },
    "ListErrorFramesResponse": {
      "type": "object",
      "properties": {
        "unreachable": {
          "type": "array",
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token identifying a page of results the server should return."
        },
        "errorFrames": {
          "items": {
            "$ref": "ErrorFrame"
          },
          "type": "array",
          "description": "The list of error frames."
        }
      },
      "description": "A response for listing error frames.",
      "id": "ListErrorFramesResponse"
    },
    "ReportSummaryUtilizationChartData": {
      "description": "Utilization Chart is a specific type of visualization which displays a metric classified into \"Used\" and \"Free\" buckets.",
      "type": "object",
      "properties": {
        "used": {
          "type": "string",
          "description": "Aggregate value which falls into the \"Used\" bucket.",
          "format": "int64"
        },
        "free": {
          "type": "string",
          "description": "Aggregate value which falls into the \"Free\" bucket.",
          "format": "int64"
        }
      },
      "id": "ReportSummaryUtilizationChartData"
    },
    "BiosDetails": {
      "id": "BiosDetails",
      "type": "object",
      "properties": {
        "biosName": {
          "deprecated": true,
          "type": "string",
          "description": "BIOS name. This fields is deprecated. Please use the `id` field instead."
        },
        "smbiosUuid": {
          "type": "string",
          "description": "SMBIOS UUID."
        },
        "id": {
          "type": "string",
          "description": "BIOS ID."
        },
        "releaseDate": {
          "description": "BIOS release date.",
          "$ref": "Date"
        },
        "manufacturer": {
          "type": "string",
          "description": "BIOS manufacturer."
        },
        "version": {
          "type": "string",
          "description": "BIOS version."
        }
      },
      "description": "Details about the BIOS."
    },
    "Source": {
      "type": "object",
      "properties": {
        "managed": {
          "description": "If `true`, the source is managed by other service(s).",
          "type": "boolean"
        },
        "state": {
          "readOnly": true,
          "enum": [
            "STATE_UNSPECIFIED",
            "ACTIVE",
            "DELETING",
            "INVALID"
          ],
          "enumDescriptions": [
            "Unspecified.",
            "The source is active and ready to be used.",
            "In the process of being deleted.",
            "Source is in an invalid state. Asset frames reported to it will be ignored."
          ],
          "description": "Output only. The state of the source.",
          "type": "string"
        },
        "pendingFrameCount": {
          "type": "integer",
          "description": "Output only. Number of frames that are still being processed.",
          "readOnly": true,
          "format": "int32"
        },
        "description": {
          "type": "string",
          "description": "Free-text description."
        },
        "priority": {
          "format": "int32",
          "type": "integer",
          "description": "The information confidence of the source. The higher the value, the higher the confidence."
        },
        "type": {
          "enum": [
            "SOURCE_TYPE_UNKNOWN",
            "SOURCE_TYPE_UPLOAD",
            "SOURCE_TYPE_GUEST_OS_SCAN",
            "SOURCE_TYPE_INVENTORY_SCAN",
            "SOURCE_TYPE_CUSTOM",
            "SOURCE_TYPE_DISCOVERY_CLIENT"
          ],
          "enumDescriptions": [
            "Unspecified",
            "Manually uploaded file (e.g. CSV)",
            "Guest-level info",
            "Inventory-level scan",
            "Third-party owned sources.",
            "Discovery clients"
          ],
          "type": "string",
          "description": "Data source type."
        },
        "name": {
          "readOnly": true,
          "description": "Output only. The full name of the source.",
          "type": "string"
        },
        "createTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The timestamp when the source was created.",
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. The timestamp when the source was last updated.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        },
        "displayName": {
          "type": "string",
          "description": "User-friendly display name."
        },
        "errorFrameCount": {
          "readOnly": true,
          "format": "int32",
          "type": "integer",
          "description": "Output only. The number of frames that were reported by the source and contained errors."
        }
      },
      "description": "Source represents an object from which asset information is streamed to Migration Center.",
      "id": "Source"
    },
    "ReportSummaryComputeEngineFinding": {
      "id": "ReportSummaryComputeEngineFinding",
      "description": "A set of findings that applies to assets destined for Compute Engine.",
      "type": "object",
      "properties": {
        "allocatedRegions": {
          "description": "Set of regions in which the assets were allocated.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "machineSeriesAllocations": {
          "items": {
            "$ref": "ReportSummaryMachineSeriesAllocation"
          },
          "description": "Distribution of assets based on the Machine Series.",
          "type": "array"
        },
        "allocatedDiskTypes": {
          "items": {
            "enum": [
              "PERSISTENT_DISK_TYPE_UNSPECIFIED",
              "PERSISTENT_DISK_TYPE_STANDARD",
              "PERSISTENT_DISK_TYPE_BALANCED",
              "PERSISTENT_DISK_TYPE_SSD"
            ],
            "enumDescriptions": [
              "Unspecified. Fallback to default value based on context.",
              "Standard HDD Persistent Disk.",
              "Balanced Persistent Disk.",
              "SSD Persistent Disk."
            ],
            "type": "string"
          },
          "description": "Set of disk types allocated to assets.",
          "type": "array"
        },
        "allocatedAssetCount": {
          "description": "Count of assets which were allocated.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "InsightList": {
      "description": "Message containing insights list.",
      "type": "object",
      "properties": {
        "insights": {
          "description": "Output only. Insights of the list.",
          "type": "array",
          "items": {
            "$ref": "Insight"
          },
          "readOnly": true
        },
        "updateTime": {
          "type": "string",
          "description": "Output only. Update timestamp.",
          "readOnly": true,
          "format": "google-datetime"
        }
      },
      "id": "InsightList"
    },
    "XlsxOutputFile": {
      "id": "XlsxOutputFile",
      "type": "object",
      "properties": {
        "signedUri": {
          "readOnly": true,
          "$ref": "SignedUri",
          "description": "Output only. Signed URI destination."
        }
      },
      "description": "Contains a single output file of type XLSX."
    },
    "ListAssetsExportJobsResponse": {
      "id": "ListAssetsExportJobsResponse",
      "description": "Response message for listing assets export jobs.",
      "type": "object",
      "properties": {
        "assetsExportJobs": {
          "readOnly": true,
          "items": {
            "$ref": "AssetsExportJob"
          },
          "type": "array",
          "description": "Output only. The list of assets export jobs."
        },
        "nextPageToken": {
          "description": "Output only. A token identifying a page of results the server should return.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "NetworkAddress": {
      "id": "NetworkAddress",
      "description": "Details of network address.",
      "type": "object",
      "properties": {
        "subnetMask": {
          "type": "string",
          "description": "Subnet mask."
        },
        "bcast": {
          "type": "string",
          "description": "Broadcast address."
        },
        "fqdn": {
          "description": "Fully qualified domain name.",
          "type": "string"
        },
        "assignment": {
          "type": "string",
          "description": "Whether DHCP is used to assign addresses.",
          "enum": [
            "ADDRESS_ASSIGNMENT_UNSPECIFIED",
            "ADDRESS_ASSIGNMENT_STATIC",
            "ADDRESS_ASSIGNMENT_DHCP"
          ],
          "enumDescriptions": [
            "Unknown (default value).",
            "Statically assigned IP.",
            "Dynamically assigned IP (DHCP)."
          ]
        },
        "ipAddress": {
          "description": "Assigned or configured IP Address.",
          "type": "string"
        }
      }
    },
    "PostgreSqlSetting": {
      "description": "PostgreSql setting.",
      "type": "object",
      "properties": {
        "setting": {
          "type": "string",
          "description": "Required. The setting name."
        },
        "source": {
          "description": "Required. The setting source.",
          "type": "string"
        },
        "realValue": {
          "format": "float",
          "description": "Required. The setting real value.",
          "type": "number"
        },
        "intValue": {
          "format": "int64",
          "type": "string",
          "description": "Required. The setting int value."
        },
        "stringValue": {
          "description": "Required. The setting string value. Notice that enum values are stored as strings.",
          "type": "string"
        },
        "unit": {
          "type": "string",
          "description": "Optional. The setting unit."
        },
        "boolValue": {
          "description": "Required. The setting boolean value.",
          "type": "boolean"
        }
      },
      "id": "PostgreSqlSetting"
    },
    "ListImportJobsResponse": {
      "id": "ListImportJobsResponse",
      "description": "A response for listing import jobs.",
      "type": "object",
      "properties": {
        "importJobs": {
          "items": {
            "$ref": "ImportJob"
          },
          "type": "array",
          "description": "The list of import jobs."
        },
        "unreachable": {
          "type": "array",
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        },
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        }
      }
    },
    "VmwarePlatformDetails": {
      "description": "VMware specific details.",
      "type": "object",
      "properties": {
        "vcenterVersion": {
          "type": "string",
          "description": "vCenter version."
        },
        "vcenterFolder": {
          "description": "Folder name in vCenter where asset resides.",
          "type": "string"
        },
        "vcenterVmId": {
          "type": "string",
          "description": "vCenter VM ID."
        },
        "esxHyperthreading": {
          "enumDescriptions": [
            "Simultaneous Multithreading status unknown.",
            "Simultaneous Multithreading is disabled or unavailable.",
            "Simultaneous Multithreading is enabled."
          ],
          "enum": [
            "HYPERTHREADING_STATUS_UNSPECIFIED",
            "HYPERTHREADING_STATUS_DISABLED",
            "HYPERTHREADING_STATUS_ENABLED"
          ],
          "description": "Whether the ESX is hyperthreaded.",
          "type": "string"
        },
        "esxVersion": {
          "type": "string",
          "description": "ESX version."
        },
        "osid": {
          "description": "VMware os enum - https://vdc-repo.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html.",
          "type": "string"
        },
        "vcenterUri": {
          "description": "vCenter URI used in collection.",
          "type": "string"
        }
      },
      "id": "VmwarePlatformDetails"
    },
    "RunningService": {
      "id": "RunningService",
      "description": "Guest OS running service details.",
      "type": "object",
      "properties": {
        "state": {
          "type": "string",
          "description": "Service state (OS-agnostic).",
          "enum": [
            "STATE_UNSPECIFIED",
            "ACTIVE",
            "PAUSED",
            "STOPPED"
          ],
          "enumDescriptions": [
            "Service state unspecified.",
            "Service is active.",
            "Service is paused.",
            "Service is stopped."
          ]
        },
        "cmdline": {
          "description": "Service command line.",
          "type": "string"
        },
        "exePath": {
          "description": "Service binary path.",
          "type": "string"
        },
        "pid": {
          "format": "int64",
          "type": "string",
          "description": "Service pid."
        },
        "serviceName": {
          "description": "Service name.",
          "type": "string"
        },
        "startMode": {
          "description": "Service start mode (OS-agnostic).",
          "type": "string",
          "enumDescriptions": [
            "Start mode unspecified.",
            "The service is a device driver started by the system loader.",
            "The service is a device driver started by the IOInitSystem function.",
            "The service is started by the operating system, at system start-up",
            "The service is started only manually, by a user.",
            "The service is disabled."
          ],
          "enum": [
            "START_MODE_UNSPECIFIED",
            "BOOT",
            "SYSTEM",
            "AUTO",
            "MANUAL",
            "DISABLED"
          ]
        }
      }
    },
    "AggregationResult": {
      "type": "object",
      "properties": {
        "histogram": {
          "$ref": "AggregationResultHistogram"
        },
        "field": {
          "type": "string"
        },
        "sum": {
          "$ref": "AggregationResultSum"
        },
        "frequency": {
          "$ref": "AggregationResultFrequency"
        },
        "count": {
          "$ref": "AggregationResultCount"
        }
      },
      "description": "Message describing a result of an aggregation.",
      "id": "AggregationResult"
    },
    "GuestRuntimeDetails": {
      "type": "object",
      "properties": {
        "network": {
          "description": "Runtime network information (connections, ports).",
          "$ref": "RuntimeNetworkInfo"
        },
        "lastBootTime": {
          "description": "Last time the OS was booted.",
          "type": "string",
          "format": "google-datetime"
        },
        "services": {
          "description": "Running background services.",
          "$ref": "RunningServiceList"
        },
        "domain": {
          "description": "Domain, e.g. c.stratozone-development.internal.",
          "type": "string"
        },
        "machineName": {
          "description": "Machine name.",
          "type": "string"
        },
        "openFileList": {
          "$ref": "OpenFileList",
          "description": "Open files information."
        },
        "processes": {
          "$ref": "RunningProcessList",
          "description": "Running processes."
        },
        "installedApps": {
          "$ref": "GuestInstalledApplicationList",
          "description": "Installed applications information."
        }
      },
      "description": "Guest OS runtime information.",
      "id": "GuestRuntimeDetails"
    },
    "ReportSummaryHistogramChartDataBucket": {
      "type": "object",
      "properties": {
        "lowerBound": {
          "format": "int64",
          "description": "Lower bound - inclusive.",
          "type": "string"
        },
        "upperBound": {
          "type": "string",
          "description": "Upper bound - exclusive.",
          "format": "int64"
        },
        "count": {
          "description": "Count of items in the bucket.",
          "type": "string",
          "format": "int64"
        }
      },
      "description": "A histogram bucket with a lower and upper bound, and a count of items with a field value between those bounds. The lower bound is inclusive and the upper bound is exclusive. Lower bound may be -infinity and upper bound may be infinity.",
      "id": "ReportSummaryHistogramChartDataBucket"
    },
    "ListDiscoveryClientsResponse": {
      "id": "ListDiscoveryClientsResponse",
      "type": "object",
      "properties": {
        "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."
        },
        "discoveryClients": {
          "items": {
            "$ref": "DiscoveryClient"
          },
          "type": "array",
          "description": "List of discovery clients."
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Response message for listing discovery clients."
    },
    "DailyResourceUsageAggregationDisk": {
      "id": "DailyResourceUsageAggregationDisk",
      "type": "object",
      "properties": {
        "iops": {
          "description": "Optional. Disk I/O operations per second.",
          "$ref": "DailyResourceUsageAggregationStats"
        },
        "readIops": {
          "description": "Optional. Disk read I/O operations per second.",
          "$ref": "DailyResourceUsageAggregationStats"
        },
        "writeIops": {
          "$ref": "DailyResourceUsageAggregationStats",
          "description": "Optional. Disk write I/O operations per second."
        }
      },
      "description": "Statistical aggregation of disk usage."
    },
    "GuestConfigDetails": {
      "type": "object",
      "properties": {
        "nfsExports": {
          "description": "NFS exports.",
          "$ref": "NfsExportList"
        },
        "selinuxMode": {
          "enumDescriptions": [
            "SELinux mode unknown or unspecified.",
            "SELinux is disabled.",
            "SELinux permissive mode.",
            "SELinux enforcing mode."
          ],
          "enum": [
            "SE_LINUX_MODE_UNSPECIFIED",
            "SE_LINUX_MODE_DISABLED",
            "SE_LINUX_MODE_PERMISSIVE",
            "SE_LINUX_MODE_ENFORCING"
          ],
          "description": "Security-Enhanced Linux (SELinux) mode.",
          "type": "string"
        },
        "issue": {
          "type": "string",
          "description": "OS issue (typically /etc/issue in Linux)."
        },
        "fstab": {
          "description": "Mount list (Linux fstab).",
          "$ref": "FstabEntryList"
        },
        "hosts": {
          "description": "Hosts file (/etc/hosts).",
          "$ref": "HostsEntryList"
        }
      },
      "description": "Guest OS config information.",
      "id": "GuestConfigDetails"
    },
    "DailyResourceUsageAggregation": {
      "id": "DailyResourceUsageAggregation",
      "type": "object",
      "properties": {
        "network": {
          "$ref": "DailyResourceUsageAggregationNetwork",
          "description": "Network usage."
        },
        "date": {
          "$ref": "Date",
          "description": "Aggregation date. Day boundaries are at midnight UTC."
        },
        "cpu": {
          "description": "CPU usage.",
          "$ref": "DailyResourceUsageAggregationCPU"
        },
        "memory": {
          "description": "Memory usage.",
          "$ref": "DailyResourceUsageAggregationMemory"
        },
        "disk": {
          "$ref": "DailyResourceUsageAggregationDisk",
          "description": "Disk usage."
        }
      },
      "description": "Usage data aggregation for a single day."
    },
    "GuestInstalledApplicationList": {
      "id": "GuestInstalledApplicationList",
      "type": "object",
      "properties": {
        "entries": {
          "items": {
            "$ref": "GuestInstalledApplication"
          },
          "description": "Application entries.",
          "type": "array"
        }
      },
      "description": "Guest installed application list."
    },
    "GuestOsDetails": {
      "id": "GuestOsDetails",
      "type": "object",
      "properties": {
        "config": {
          "description": "OS and app configuration.",
          "$ref": "GuestConfigDetails"
        },
        "osName": {
          "description": "The name of the operating system.",
          "type": "string"
        },
        "family": {
          "enum": [
            "OS_FAMILY_UNKNOWN",
            "OS_FAMILY_WINDOWS",
            "OS_FAMILY_LINUX",
            "OS_FAMILY_UNIX"
          ],
          "enumDescriptions": [
            "",
            "Microsoft Windows Server and Desktop.",
            "Various Linux flavors.",
            "Non-Linux Unix flavors."
          ],
          "type": "string",
          "description": "What family the OS belong to, if known."
        },
        "runtime": {
          "description": "Runtime information.",
          "$ref": "GuestRuntimeDetails"
        },
        "version": {
          "description": "The version of the operating system.",
          "type": "string"
        }
      },
      "description": "Information from Guest-level collections."
    },
    "ImportDataFile": {
      "type": "object",
      "properties": {
        "displayName": {
          "description": "Optional. User-friendly display name. Maximum length is 63 characters.",
          "type": "string"
        },
        "name": {
          "description": "Output only. The name of the file.",
          "type": "string",
          "readOnly": true
        },
        "format": {
          "type": "string",
          "description": "Required. The payload format.",
          "enum": [
            "IMPORT_JOB_FORMAT_UNSPECIFIED",
            "IMPORT_JOB_FORMAT_RVTOOLS_XLSX",
            "IMPORT_JOB_FORMAT_RVTOOLS_CSV",
            "IMPORT_JOB_FORMAT_EXPORTED_AWS_CSV",
            "IMPORT_JOB_FORMAT_EXPORTED_AZURE_CSV",
            "IMPORT_JOB_FORMAT_STRATOZONE_CSV",
            "IMPORT_JOB_FORMAT_DATABASE_ZIP"
          ],
          "enumDescriptions": [
            "Default value.",
            "RVTools format (XLSX).",
            "RVTools format (CSV).",
            "CSV format exported from AWS using the AWS collection script.",
            "CSV format exported from Azure using the Azure collection script.",
            "CSV format created manually and following the StratoZone format. For more information, see Manually create and upload data tables.",
            "ZIP file with nested CSV files generated by a database collector."
          ]
        },
        "createTime": {
          "description": "Output only. The timestamp when the file was created.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        },
        "state": {
          "description": "Output only. The state of the import data file.",
          "enumDescriptions": [
            "Default value.",
            "The data file is being created.",
            "The data file completed initialization."
          ],
          "readOnly": true,
          "enum": [
            "STATE_UNSPECIFIED",
            "CREATING",
            "ACTIVE"
          ],
          "type": "string"
        },
        "uploadFileInfo": {
          "$ref": "UploadFileInfo",
          "description": "Information about a file that is uploaded to a storage service."
        }
      },
      "description": "A resource that represents a payload file in an import job.",
      "id": "ImportDataFile"
    },
    "RuntimeNetworkInfo": {
      "id": "RuntimeNetworkInfo",
      "description": "Runtime networking information.",
      "type": "object",
      "properties": {
        "scanTime": {
          "type": "string",
          "description": "Time of the last network scan.",
          "format": "google-datetime"
        },
        "connections": {
          "$ref": "NetworkConnectionList",
          "description": "Network connections."
        }
      }
    },
    "DatabaseDeploymentDetails": {
      "id": "DatabaseDeploymentDetails",
      "description": "The details of a database deployment asset.",
      "type": "object",
      "properties": {
        "sqlServer": {
          "description": "Optional. Details of a Microsoft SQL Server database deployment.",
          "$ref": "SqlServerDatabaseDeployment"
        },
        "awsRds": {
          "$ref": "AwsRds",
          "description": "Optional. Details of an AWS RDS instance."
        },
        "postgresql": {
          "$ref": "PostgreSqlDatabaseDeployment",
          "description": "Optional. Details of a PostgreSQL database deployment."
        },
        "version": {
          "type": "string",
          "description": "Optional. The database deployment version."
        },
        "generatedId": {
          "type": "string",
          "description": "Optional. The database deployment generated ID."
        },
        "manualUniqueId": {
          "type": "string",
          "description": "Optional. A manual unique ID set by the user."
        },
        "topology": {
          "description": "Optional. Details of the database deployment topology.",
          "$ref": "DatabaseDeploymentTopology"
        },
        "mysql": {
          "$ref": "MysqlDatabaseDeployment",
          "description": "Optional. Details of a MYSQL database deployment."
        },
        "aggregatedStats": {
          "description": "Output only. Aggregated stats for the database deployment.",
          "readOnly": true,
          "$ref": "DatabaseDeploymentDetailsAggregatedStats"
        },
        "edition": {
          "type": "string",
          "description": "Optional. The database deployment edition."
        }
      }
    },
    "ReportSummaryGroupPreferenceSetFinding": {
      "id": "ReportSummaryGroupPreferenceSetFinding",
      "description": "Summary Findings for a specific Group/PreferenceSet combination.",
      "type": "object",
      "properties": {
        "monthlyCostCompute": {
          "description": "Compute monthly cost for this preference set.",
          "$ref": "Money"
        },
        "monthlyCostOsLicense": {
          "$ref": "Money",
          "description": "Licensing monthly cost for this preference set."
        },
        "machinePreferences": {
          "$ref": "VirtualMachinePreferences",
          "description": "A set of preferences that applies to all machines in the context."
        },
        "vmwareEngineFinding": {
          "description": "A set of findings that applies to VMWare machines in the input.",
          "$ref": "ReportSummaryVmwareEngineFinding"
        },
        "soleTenantFinding": {
          "$ref": "ReportSummarySoleTenantFinding",
          "description": "A set of findings that applies to Sole-Tenant machines in the input."
        },
        "displayName": {
          "description": "Display Name of the Preference Set",
          "type": "string"
        },
        "monthlyCostStorage": {
          "description": "Storage monthly cost for this preference set.",
          "$ref": "Money"
        },
        "monthlyCostOther": {
          "description": "Miscellaneous monthly cost for this preference set.",
          "$ref": "Money"
        },
        "description": {
          "type": "string",
          "description": "Description for the Preference Set."
        },
        "monthlyCostNetworkEgress": {
          "description": "Network Egress monthly cost for this preference set.",
          "$ref": "Money"
        },
        "monthlyCostTotal": {
          "$ref": "Money",
          "description": "Total monthly cost for this preference set."
        },
        "computeEngineFinding": {
          "description": "A set of findings that applies to Compute Engine machines in the input.",
          "$ref": "ReportSummaryComputeEngineFinding"
        }
      }
    },
    "ImportRowErrorArchiveErrorDetails": {
      "id": "ImportRowErrorArchiveErrorDetails",
      "description": "Error details for an archive file.",
      "type": "object",
      "properties": {
        "filePath": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The file path inside the archive where the error was detected."
        },
        "csvError": {
          "$ref": "ImportRowErrorCsvErrorDetails",
          "description": "Error details for a CSV file."
        }
      }
    },
    "CascadingRule": {
      "type": "object",
      "properties": {
        "cascadeLogicalDbs": {
          "description": "Cascading rule for related logical DBs.",
          "$ref": "CascadeLogicalDBsRule"
        }
      },
      "description": "Specifies cascading rules for traversing relations.",
      "id": "CascadingRule"
    },
    "ImportRowErrorXlsxErrorDetails": {
      "description": "Error details for an XLSX file.",
      "type": "object",
      "properties": {
        "sheet": {
          "description": "The name of the sheet where the error was detected.",
          "type": "string"
        },
        "rowNumber": {
          "type": "integer",
          "description": "The row number where the error was detected.",
          "format": "int32"
        }
      },
      "id": "ImportRowErrorXlsxErrorDetails"
    },
    "ImportJob": {
      "description": "A resource that represents the background job that imports asset frames.",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "Optional. User-friendly display name. Maximum length is 256 characters.",
          "type": "string"
        },
        "assetSource": {
          "description": "Required. Reference to a source.",
          "type": "string"
        },
        "validationReport": {
          "description": "Output only. The report with the validation results of the import job.",
          "readOnly": true,
          "$ref": "ValidationReport"
        },
        "completeTime": {
          "readOnly": true,
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. The timestamp when the import job was completed."
        },
        "executionReport": {
          "readOnly": true,
          "$ref": "ExecutionReport",
          "description": "Output only. The report with the results of running the import job."
        },
        "createTime": {
          "description": "Output only. The timestamp when the import job was created.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        },
        "updateTime": {
          "readOnly": true,
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. The timestamp when the import job was last updated."
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels as key value pairs."
        },
        "name": {
          "readOnly": true,
          "description": "Output only. The full name of the import job.",
          "type": "string"
        },
        "state": {
          "description": "Output only. The state of the import job.",
          "readOnly": true,
          "enum": [
            "IMPORT_JOB_STATE_UNSPECIFIED",
            "IMPORT_JOB_STATE_PENDING",
            "IMPORT_JOB_STATE_RUNNING",
            "IMPORT_JOB_STATE_COMPLETED",
            "IMPORT_JOB_STATE_FAILED",
            "IMPORT_JOB_STATE_VALIDATING",
            "IMPORT_JOB_STATE_FAILED_VALIDATION",
            "IMPORT_JOB_STATE_READY"
          ],
          "enumDescriptions": [
            "Default value.",
            "The import job is pending.",
            "The processing of the import job is ongoing.",
            "The import job processing has completed.",
            "The import job failed to be processed.",
            "The import job is being validated.",
            "The import job contains blocking errors.",
            "The validation of the job completed with no blocking errors."
          ],
          "type": "string"
        }
      },
      "id": "ImportJob"
    },
    "Insight": {
      "id": "Insight",
      "type": "object",
      "properties": {
        "migrationInsight": {
          "readOnly": true,
          "$ref": "MigrationInsight",
          "description": "Output only. An insight about potential migrations for an asset."
        },
        "genericInsight": {
          "readOnly": true,
          "$ref": "GenericInsight",
          "description": "Output only. A generic insight about an asset."
        }
      },
      "description": "An insight about an asset."
    },
    "ListOperationsResponse": {
      "id": "ListOperationsResponse",
      "type": "object",
      "properties": {
        "operations": {
          "type": "array",
          "description": "A list of operations that matches the specified filter in the request.",
          "items": {
            "$ref": "Operation"
          }
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "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."
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      },
      "description": "The response message for Operations.ListOperations."
    },
    "ListGroupsResponse": {
      "id": "ListGroupsResponse",
      "type": "object",
      "properties": {
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached.",
          "type": "array"
        },
        "groups": {
          "items": {
            "$ref": "Group"
          },
          "description": "The list of Group",
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        }
      },
      "description": "A response for listing groups."
    },
    "ValidationReport": {
      "id": "ValidationReport",
      "type": "object",
      "properties": {
        "fileValidations": {
          "description": "List of errors found in files.",
          "type": "array",
          "items": {
            "$ref": "FileValidationReport"
          }
        },
        "jobErrors": {
          "items": {
            "$ref": "ImportError"
          },
          "type": "array",
          "description": "List of job level errors."
        }
      },
      "description": "A resource that aggregates errors across import job files."
    },
    "MysqlDatabaseDeployment": {
      "id": "MysqlDatabaseDeployment",
      "description": "Specific details for a Mysql database deployment.",
      "type": "object",
      "properties": {
        "properties": {
          "type": "array",
          "description": "Optional. List of MySql properties.",
          "items": {
            "$ref": "MySqlProperty"
          }
        },
        "resourceGroupsCount": {
          "format": "int32",
          "description": "Optional. Number of resource groups.",
          "type": "integer"
        },
        "plugins": {
          "description": "Optional. List of MySql plugins.",
          "type": "array",
          "items": {
            "$ref": "MySqlPlugin"
          }
        },
        "variables": {
          "description": "Optional. List of MySql variables.",
          "type": "array",
          "items": {
            "$ref": "MySqlVariable"
          }
        }
      }
    },
    "SqlServerSchemaDetails": {
      "id": "SqlServerSchemaDetails",
      "description": "Specific details for a SqlServer database.",
      "type": "object",
      "properties": {
        "clrObjectCount": {
          "description": "Optional. SqlServer number of CLR objects.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "Relation": {
      "id": "Relation",
      "description": "Message representing a relation between 2 resource.",
      "type": "object",
      "properties": {
        "createTime": {
          "description": "Output only. The timestamp when the relation was created.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        },
        "dstAsset": {
          "readOnly": true,
          "description": "Output only. The destination asset name in the relation.",
          "type": "string"
        },
        "srcAsset": {
          "readOnly": true,
          "description": "Output only. The source asset name in the relation.",
          "type": "string"
        },
        "type": {
          "description": "Optional. The type of the relation.",
          "type": "string",
          "enumDescriptions": [
            "Default value.",
            "DBDeployment -\u003e Database",
            "A relation between a machine/VM and the database deployment it hosts."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "LOGICAL_DATABASE",
            "DATABASE_DEPLOYMENT_HOSTING_SERVER"
          ]
        },
        "name": {
          "description": "Output only. Identifier. The identifier of the relation.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "ReportSummaryVmwareNode": {
      "id": "ReportSummaryVmwareNode",
      "type": "object",
      "properties": {
        "code": {
          "description": "Code to identify VMware Engine node series, e.g. \"ve1-standard-72\". Based on the displayName of cloud.google.com/vmware-engine/docs/reference/rest/v1/projects.locations.nodeTypes",
          "type": "string"
        }
      },
      "description": "A VMWare Engine Node"
    },
    "ReportSummaryChartData": {
      "id": "ReportSummaryChartData",
      "type": "object",
      "properties": {
        "dataPoints": {
          "items": {
            "$ref": "ReportSummaryChartDataDataPoint"
          },
          "type": "array",
          "description": "Each data point in the chart is represented as a name-value pair with the name being the x-axis label, and the value being the y-axis value."
        }
      },
      "description": "Describes a collection of data points rendered as a Chart."
    },
    "DiskEntryList": {
      "description": "VM disks.",
      "type": "object",
      "properties": {
        "entries": {
          "type": "array",
          "description": "Disk entries.",
          "items": {
            "$ref": "DiskEntry"
          }
        }
      },
      "id": "DiskEntryList"
    },
    "CascadeLogicalDBsRule": {
      "description": "Cascading rule for related logical DBs.",
      "type": "object",
      "properties": {},
      "id": "CascadeLogicalDBsRule"
    },
    "ReportSummary": {
      "id": "ReportSummary",
      "description": "Describes the Summary view of a Report, which contains aggregated values for all the groups and preference sets included in this Report.",
      "type": "object",
      "properties": {
        "allAssetsStats": {
          "$ref": "ReportSummaryAssetAggregateStats",
          "description": "Aggregate statistics for all the assets across all the groups."
        },
        "groupFindings": {
          "items": {
            "$ref": "ReportSummaryGroupFinding"
          },
          "description": "Findings for each Group included in this report.",
          "type": "array"
        }
      }
    },
    "NfsExportList": {
      "id": "NfsExportList",
      "description": "NFS exports.",
      "type": "object",
      "properties": {
        "entries": {
          "items": {
            "$ref": "NfsExport"
          },
          "description": "NFS export entries.",
          "type": "array"
        }
      }
    },
    "AggregationResultSum": {
      "id": "AggregationResultSum",
      "type": "object",
      "properties": {
        "value": {
          "type": "number",
          "format": "double"
        }
      },
      "description": "The result of a sum aggregation."
    },
    "SqlServerDatabaseDeployment": {
      "id": "SqlServerDatabaseDeployment",
      "type": "object",
      "properties": {
        "features": {
          "type": "array",
          "description": "Optional. List of SQL Server features.",
          "items": {
            "$ref": "SqlServerFeature"
          }
        },
        "serverFlags": {
          "description": "Optional. List of SQL Server server flags.",
          "type": "array",
          "items": {
            "$ref": "SqlServerServerFlag"
          }
        },
        "traceFlags": {
          "type": "array",
          "description": "Optional. List of SQL Server trace flags.",
          "items": {
            "$ref": "SqlServerTraceFlag"
          }
        }
      },
      "description": "Specific details for a Microsoft SQL Server database deployment."
    }
  },
  "version_module": true,
  "version": "v1",
  "fullyEncodeReservedExpansion": true,
  "description": "A unified platform that helps you accelerate your end-to-end cloud journey from your current on-premises or cloud environments to Google Cloud.",
  "servicePath": "",
  "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."
        }
      }
    }
  },
  "canonicalName": "Migration Center API",
  "mtlsRootUrl": "https://migrationcenter.mtls.googleapis.com/",
  "revision": "20260423",
  "protocol": "rest",
  "title": "Migration Center API",
  "ownerDomain": "google.com",
  "id": "migrationcenter:v1",
  "parameters": {
    "$.xgafv": {
      "type": "string",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "enum": [
        "1",
        "2"
      ],
      "description": "V1 error format."
    },
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "oauth_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth 2.0 token for the current user."
    },
    "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": {
      "location": "query",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "type": "string"
    },
    "quotaUser": {
      "location": "query",
      "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.",
      "type": "string"
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "type": "string",
      "location": "query"
    },
    "prettyPrint": {
      "location": "query",
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "type": "boolean"
    },
    "alt": {
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "description": "Data format for response.",
      "default": "json",
      "type": "string"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    }
  },
  "kind": "discovery#restDescription",
  "rootUrl": "https://migrationcenter.googleapis.com/",
  "icons": {
    "x32": "http://www.google.com/images/icons/product/search-32.gif",
    "x16": "http://www.google.com/images/icons/product/search-16.gif"
  },
  "ownerName": "Google"
}
