{
  "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."
        }
      }
    }
  },
  "basePath": "",
  "baseUrl": "https://migrationcenter.googleapis.com/",
  "batchPath": "batch",
  "canonicalName": "Migration Center API",
  "description": "",
  "discoveryVersion": "v1",
  "documentationLink": "https://cloud.google.com/migration-center",
  "fullyEncodeReservedExpansion": true,
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "id": "migrationcenter:v1alpha1",
  "kind": "discovery#restDescription",
  "mtlsRootUrl": "https://migrationcenter.mtls.googleapis.com/",
  "name": "migrationcenter",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "parameters": {
    "$.xgafv": {
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "description": "OAuth access token.",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "default": "json",
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean"
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    }
  },
  "protocol": "rest",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "get": {
              "description": "Gets information about a location.",
              "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}",
              "httpMethod": "GET",
              "id": "migrationcenter.projects.locations.get",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Resource name for the location.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1alpha1/{+name}",
              "response": {
                "$ref": "Location"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "getSettings": {
              "description": "Gets the details of regional settings.",
              "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/settings",
              "httpMethod": "GET",
              "id": "migrationcenter.projects.locations.getSettings",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Required. Name of the resource.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/locations/[^/]+/settings$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1alpha1/{+name}",
              "response": {
                "$ref": "Settings"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "list": {
              "description": "Lists information about the supported locations for this service.",
              "flatPath": "v1alpha1/projects/{projectsId}/locations",
              "httpMethod": "GET",
              "id": "migrationcenter.projects.locations.list",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "filter": {
                  "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).",
                  "location": "query",
                  "type": "string"
                },
                "name": {
                  "description": "The resource that owns the locations collection, if applicable.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                },
                "pageSize": {
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1alpha1/{+name}/locations",
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "updateSettings": {
              "description": "Updates the regional-level project settings.",
              "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/settings",
              "httpMethod": "PATCH",
              "id": "migrationcenter.projects.locations.updateSettings",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Output only. The name of the resource.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/locations/[^/]+/settings$",
                  "required": true,
                  "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).",
                  "location": "query",
                  "type": "string"
                },
                "updateMask": {
                  "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.",
                  "format": "google-fieldmask",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1alpha1/{+name}",
              "request": {
                "$ref": "Settings"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          },
          "resources": {
            "assets": {
              "methods": {
                "aggregateValues": {
                  "description": "Aggregates the requested fields based on provided function.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets:aggregateValues",
                  "httpMethod": "POST",
                  "id": "migrationcenter.projects.locations.assets.aggregateValues",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "Required. Parent value for `AggregateAssetsValuesRequest`.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/assets:aggregateValues",
                  "request": {
                    "$ref": "AggregateAssetsValuesRequest"
                  },
                  "response": {
                    "$ref": "AggregateAssetsValuesResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "batchDelete": {
                  "description": "Deletes list of Assets.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets:batchDelete",
                  "httpMethod": "POST",
                  "id": "migrationcenter.projects.locations.assets.batchDelete",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "Required. Parent value for batch asset delete.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/assets:batchDelete",
                  "request": {
                    "$ref": "BatchDeleteAssetsRequest"
                  },
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "batchUpdate": {
                  "description": "Updates the parameters of a list of assets.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets:batchUpdate",
                  "httpMethod": "POST",
                  "id": "migrationcenter.projects.locations.assets.batchUpdate",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "Required. Parent value for batch asset update.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/assets:batchUpdate",
                  "request": {
                    "$ref": "BatchUpdateAssetsRequest"
                  },
                  "response": {
                    "$ref": "BatchUpdateAssetsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "delete": {
                  "description": "Deletes an asset. Deprecated: Please use BatchDeleteAssets API instead.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets/{assetsId}",
                  "httpMethod": "DELETE",
                  "id": "migrationcenter.projects.locations.assets.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/assets/[^/]+$",
                      "required": true,
                      "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 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",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "description": "Gets the details of an asset.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets/{assetsId}",
                  "httpMethod": "GET",
                  "id": "migrationcenter.projects.locations.assets.get",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/assets/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "view": {
                      "description": "View of the assets. Defaults to BASIC.",
                      "enum": [
                        "ASSET_VIEW_UNSPECIFIED",
                        "ASSET_VIEW_BASIC",
                        "ASSET_VIEW_FULL",
                        "ASSET_VIEW_STANDARD"
                      ],
                      "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."
                      ],
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "response": {
                    "$ref": "Asset"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "description": "Lists all the assets in a given project and location.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets",
                  "httpMethod": "GET",
                  "id": "migrationcenter.projects.locations.assets.list",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "filter": {
                      "description": "Filtering results.",
                      "location": "query",
                      "type": "string"
                    },
                    "orderBy": {
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "format": "int32",
                      "location": "query",
                      "type": "integer"
                    },
                    "pageToken": {
                      "description": "A token identifying a page of results the server should return.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "description": "Required. Parent value for `ListAssetsRequest`.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "view": {
                      "description": "View of the assets. Defaults to BASIC.",
                      "enum": [
                        "ASSET_VIEW_UNSPECIFIED",
                        "ASSET_VIEW_BASIC",
                        "ASSET_VIEW_FULL",
                        "ASSET_VIEW_STANDARD"
                      ],
                      "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."
                      ],
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/assets",
                  "response": {
                    "$ref": "ListAssetsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "patch": {
                  "description": "Updates the parameters of an asset. Deprecated: Please use BatchUpdateAssets API instead.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets/{assetsId}",
                  "httpMethod": "PATCH",
                  "id": "migrationcenter.projects.locations.assets.patch",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Output only. The full name of the asset.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/assets/[^/]+$",
                      "required": true,
                      "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).",
                      "location": "query",
                      "type": "string"
                    },
                    "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.",
                      "format": "google-fieldmask",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "request": {
                    "$ref": "Asset"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "reportAssetFrames": {
                  "description": "Reports a set of frames.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets:reportAssetFrames",
                  "httpMethod": "POST",
                  "id": "migrationcenter.projects.locations.assets.reportAssetFrames",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "Required. Parent of the resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "source": {
                      "description": "Required. Reference to a source.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/assets:reportAssetFrames",
                  "request": {
                    "$ref": "Frames"
                  },
                  "response": {
                    "$ref": "ReportAssetFramesResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              }
            },
            "groups": {
              "methods": {
                "addAssets": {
                  "description": "Adds assets to a group.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}:addAssets",
                  "httpMethod": "POST",
                  "id": "migrationcenter.projects.locations.groups.addAssets",
                  "parameterOrder": [
                    "group"
                  ],
                  "parameters": {
                    "group": {
                      "description": "Required. Group reference.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+group}:addAssets",
                  "request": {
                    "$ref": "AddAssetsToGroupRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "create": {
                  "description": "Creates a new group in a given project and location.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups",
                  "httpMethod": "POST",
                  "id": "migrationcenter.projects.locations.groups.create",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "groupId": {
                      "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])?`.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "description": "Required. Value for parent.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "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).",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/groups",
                  "request": {
                    "$ref": "Group"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "delete": {
                  "description": "Deletes a group.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}",
                  "httpMethod": "DELETE",
                  "id": "migrationcenter.projects.locations.groups.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the group resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "required": true,
                      "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 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",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "description": "Gets the details of a group.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}",
                  "httpMethod": "GET",
                  "id": "migrationcenter.projects.locations.groups.get",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "response": {
                    "$ref": "Group"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "description": "Lists all groups in a given project and location.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups",
                  "httpMethod": "GET",
                  "id": "migrationcenter.projects.locations.groups.list",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "filter": {
                      "description": "Filtering results.",
                      "location": "query",
                      "type": "string"
                    },
                    "orderBy": {
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "format": "int32",
                      "location": "query",
                      "type": "integer"
                    },
                    "pageToken": {
                      "description": "A token identifying a page of results the server should return.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "description": "Required. Parent value for `ListGroupsRequest`.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/groups",
                  "response": {
                    "$ref": "ListGroupsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "patch": {
                  "description": "Updates the parameters of a group.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}",
                  "httpMethod": "PATCH",
                  "id": "migrationcenter.projects.locations.groups.patch",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Output only. The name of the group.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "required": true,
                      "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).",
                      "location": "query",
                      "type": "string"
                    },
                    "updateMask": {
                      "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.",
                      "format": "google-fieldmask",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "request": {
                    "$ref": "Group"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "removeAssets": {
                  "description": "Removes assets from a group.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}:removeAssets",
                  "httpMethod": "POST",
                  "id": "migrationcenter.projects.locations.groups.removeAssets",
                  "parameterOrder": [
                    "group"
                  ],
                  "parameters": {
                    "group": {
                      "description": "Required. Group reference.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+group}:removeAssets",
                  "request": {
                    "$ref": "RemoveAssetsFromGroupRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              }
            },
            "importJobs": {
              "methods": {
                "create": {
                  "description": "Creates an import job.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs",
                  "httpMethod": "POST",
                  "id": "migrationcenter.projects.locations.importJobs.create",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "importJobId": {
                      "description": "Required. ID of the import job.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "description": "Required. Value for parent.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "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).",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/importJobs",
                  "request": {
                    "$ref": "ImportJob"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "delete": {
                  "description": "Deletes an import job.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}",
                  "httpMethod": "DELETE",
                  "id": "migrationcenter.projects.locations.importJobs.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "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.",
                      "location": "query",
                      "type": "boolean"
                    },
                    "name": {
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "required": true,
                      "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 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",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "description": "Gets the details of an import job.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}",
                  "httpMethod": "GET",
                  "id": "migrationcenter.projects.locations.importJobs.get",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "view": {
                      "description": "Optional. The level of details of the import job. Default value is FULL.",
                      "enum": [
                        "IMPORT_JOB_VIEW_UNSPECIFIED",
                        "IMPORT_JOB_VIEW_BASIC",
                        "IMPORT_JOB_VIEW_FULL"
                      ],
                      "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."
                      ],
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "response": {
                    "$ref": "ImportJob"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "description": "Lists all import jobs.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs",
                  "httpMethod": "GET",
                  "id": "migrationcenter.projects.locations.importJobs.list",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "filter": {
                      "description": "Filtering results.",
                      "location": "query",
                      "type": "string"
                    },
                    "orderBy": {
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "format": "int32",
                      "location": "query",
                      "type": "integer"
                    },
                    "pageToken": {
                      "description": "A token identifying a page of results the server should return.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "description": "Required. Parent value for `ListImportJobsRequest`.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "view": {
                      "description": "Optional. The level of details of each import job. Default value is BASIC.",
                      "enum": [
                        "IMPORT_JOB_VIEW_UNSPECIFIED",
                        "IMPORT_JOB_VIEW_BASIC",
                        "IMPORT_JOB_VIEW_FULL"
                      ],
                      "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."
                      ],
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/importJobs",
                  "response": {
                    "$ref": "ListImportJobsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "patch": {
                  "description": "Updates an import job.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}",
                  "httpMethod": "PATCH",
                  "id": "migrationcenter.projects.locations.importJobs.patch",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Output only. The full name of the import job.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "required": true,
                      "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).",
                      "location": "query",
                      "type": "string"
                    },
                    "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.",
                      "format": "google-fieldmask",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "request": {
                    "$ref": "ImportJob"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "run": {
                  "description": "Runs an import job.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}:run",
                  "httpMethod": "POST",
                  "id": "migrationcenter.projects.locations.importJobs.run",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. The name of the import job to run.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}:run",
                  "request": {
                    "$ref": "RunImportJobRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "validate": {
                  "description": "Validates an import job.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}:validate",
                  "httpMethod": "POST",
                  "id": "migrationcenter.projects.locations.importJobs.validate",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. The name of the import job to validate.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}:validate",
                  "request": {
                    "$ref": "ValidateImportJobRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              },
              "resources": {
                "importDataFiles": {
                  "methods": {
                    "create": {
                      "description": "Creates an import data file.",
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}/importDataFiles",
                      "httpMethod": "POST",
                      "id": "migrationcenter.projects.locations.importJobs.importDataFiles.create",
                      "parameterOrder": [
                        "parent"
                      ],
                      "parameters": {
                        "importDataFileId": {
                          "description": "Required. The ID of the new data file.",
                          "location": "query",
                          "type": "string"
                        },
                        "parent": {
                          "description": "Required. Name of the parent of the ImportDataFile.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                          "required": true,
                          "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).",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "path": "v1alpha1/{+parent}/importDataFiles",
                      "request": {
                        "$ref": "ImportDataFile"
                      },
                      "response": {
                        "$ref": "Operation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "delete": {
                      "description": "Delete an import data file.",
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}/importDataFiles/{importDataFilesId}",
                      "httpMethod": "DELETE",
                      "id": "migrationcenter.projects.locations.importJobs.importDataFiles.delete",
                      "parameterOrder": [
                        "name"
                      ],
                      "parameters": {
                        "name": {
                          "description": "Required. Name of the ImportDataFile to delete.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+/importDataFiles/[^/]+$",
                          "required": true,
                          "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 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",
                          "type": "string"
                        }
                      },
                      "path": "v1alpha1/{+name}",
                      "response": {
                        "$ref": "Operation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "get": {
                      "description": "Gets an import data file.",
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}/importDataFiles/{importDataFilesId}",
                      "httpMethod": "GET",
                      "id": "migrationcenter.projects.locations.importJobs.importDataFiles.get",
                      "parameterOrder": [
                        "name"
                      ],
                      "parameters": {
                        "name": {
                          "description": "Required. Name of the ImportDataFile.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+/importDataFiles/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1alpha1/{+name}",
                      "response": {
                        "$ref": "ImportDataFile"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "list": {
                      "description": "List import data files.",
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}/importDataFiles",
                      "httpMethod": "GET",
                      "id": "migrationcenter.projects.locations.importJobs.importDataFiles.list",
                      "parameterOrder": [
                        "parent"
                      ],
                      "parameters": {
                        "filter": {
                          "description": "Filtering results.",
                          "location": "query",
                          "type": "string"
                        },
                        "orderBy": {
                          "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                          "location": "query",
                          "type": "string"
                        },
                        "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.",
                          "format": "int32",
                          "location": "query",
                          "type": "integer"
                        },
                        "pageToken": {
                          "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",
                          "type": "string"
                        },
                        "parent": {
                          "description": "Required. Name of the parent of the `ImportDataFiles` resource.",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "path": "v1alpha1/{+parent}/importDataFiles",
                      "response": {
                        "$ref": "ListImportDataFilesResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    }
                  }
                }
              }
            },
            "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`.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "httpMethod": "POST",
                  "id": "migrationcenter.projects.locations.operations.cancel",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource to be cancelled.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}:cancel",
                  "request": {
                    "$ref": "CancelOperationRequest"
                  },
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "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`.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "httpMethod": "DELETE",
                  "id": "migrationcenter.projects.locations.operations.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource to be deleted.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "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.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "httpMethod": "GET",
                  "id": "migrationcenter.projects.locations.operations.get",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations",
                  "httpMethod": "GET",
                  "id": "migrationcenter.projects.locations.operations.list",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "filter": {
                      "description": "The standard list filter.",
                      "location": "query",
                      "type": "string"
                    },
                    "name": {
                      "description": "The name of the operation's parent resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "The standard list page size.",
                      "format": "int32",
                      "location": "query",
                      "type": "integer"
                    },
                    "pageToken": {
                      "description": "The standard list page token.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}/operations",
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              }
            },
            "preferenceSets": {
              "methods": {
                "create": {
                  "description": "Creates a new preference set in a given project and location.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/preferenceSets",
                  "httpMethod": "POST",
                  "id": "migrationcenter.projects.locations.preferenceSets.create",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "Required. Value for parent.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "preferenceSetId": {
                      "location": "query",
                      "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).",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/preferenceSets",
                  "request": {
                    "$ref": "PreferenceSet"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "delete": {
                  "description": "Deletes a preference set.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/preferenceSets/{preferenceSetsId}",
                  "httpMethod": "DELETE",
                  "id": "migrationcenter.projects.locations.preferenceSets.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the group resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/preferenceSets/[^/]+$",
                      "required": true,
                      "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 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",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "description": "Gets the details of a preference set.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/preferenceSets/{preferenceSetsId}",
                  "httpMethod": "GET",
                  "id": "migrationcenter.projects.locations.preferenceSets.get",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/preferenceSets/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "response": {
                    "$ref": "PreferenceSet"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "description": "Lists all the preference sets in a given project and location.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/preferenceSets",
                  "httpMethod": "GET",
                  "id": "migrationcenter.projects.locations.preferenceSets.list",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "orderBy": {
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "location": "query",
                      "type": "string"
                    },
                    "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.",
                      "format": "int32",
                      "location": "query",
                      "type": "integer"
                    },
                    "pageToken": {
                      "description": "A token identifying a page of results the server should return.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "description": "Required. Parent value for `ListPreferenceSetsRequest`.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/preferenceSets",
                  "response": {
                    "$ref": "ListPreferenceSetsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "patch": {
                  "description": "Updates the parameters of a preference set.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/preferenceSets/{preferenceSetsId}",
                  "httpMethod": "PATCH",
                  "id": "migrationcenter.projects.locations.preferenceSets.patch",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Output only. Name of the preference set.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/preferenceSets/[^/]+$",
                      "required": true,
                      "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).",
                      "location": "query",
                      "type": "string"
                    },
                    "updateMask": {
                      "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",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "request": {
                    "$ref": "PreferenceSet"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              }
            },
            "sources": {
              "methods": {
                "create": {
                  "description": "Creates a new source in a given project and location.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources",
                  "httpMethod": "POST",
                  "id": "migrationcenter.projects.locations.sources.create",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "Required. Value for parent.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "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).",
                      "location": "query",
                      "type": "string"
                    },
                    "sourceId": {
                      "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])?`.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/sources",
                  "request": {
                    "$ref": "Source"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "delete": {
                  "description": "Deletes a source.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}",
                  "httpMethod": "DELETE",
                  "id": "migrationcenter.projects.locations.sources.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+$",
                      "required": true,
                      "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 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",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "description": "Gets the details of a source.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}",
                  "httpMethod": "GET",
                  "id": "migrationcenter.projects.locations.sources.get",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "response": {
                    "$ref": "Source"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "description": "Lists all the sources in a given project and location.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources",
                  "httpMethod": "GET",
                  "id": "migrationcenter.projects.locations.sources.list",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "filter": {
                      "description": "Filtering results.",
                      "location": "query",
                      "type": "string"
                    },
                    "orderBy": {
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "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",
                      "type": "integer"
                    },
                    "pageToken": {
                      "description": "A token identifying a page of results that the server should return.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "description": "Required. Parent value for `ListSourcesRequest`.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/sources",
                  "response": {
                    "$ref": "ListSourcesResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "patch": {
                  "description": "Updates the parameters of a source.",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}",
                  "httpMethod": "PATCH",
                  "id": "migrationcenter.projects.locations.sources.patch",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Output only. The full name of the source.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+$",
                      "required": true,
                      "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).",
                      "location": "query",
                      "type": "string"
                    },
                    "updateMask": {
                      "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.",
                      "format": "google-fieldmask",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "request": {
                    "$ref": "Source"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "revision": "20230311",
  "rootUrl": "https://migrationcenter.googleapis.com/",
  "schemas": {
    "AddAssetsToGroupRequest": {
      "description": "A request to add assets to a group.",
      "id": "AddAssetsToGroupRequest",
      "properties": {
        "allowExisting": {
          "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`.",
          "type": "boolean"
        },
        "assets": {
          "$ref": "AssetList",
          "description": "Required. List of assets to be added. The maximum number of assets that can be added in a single request is 1000."
        },
        "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"
        }
      },
      "type": "object"
    },
    "AggregateAssetsValuesRequest": {
      "description": "A request to aggregate one or more values.",
      "id": "AggregateAssetsValuesRequest",
      "properties": {
        "aggregations": {
          "description": "Array of aggregations to perform. Up to 25 aggregations can be defined.",
          "items": {
            "$ref": "Aggregation"
          },
          "type": "array"
        },
        "filter": {
          "description": "The aggregation will be performed on assets that match the provided filter.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AggregateAssetsValuesResponse": {
      "description": "A response to a request to aggregated assets values.",
      "id": "AggregateAssetsValuesResponse",
      "properties": {
        "results": {
          "description": "The aggregation results.",
          "items": {
            "$ref": "AggregationResult"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Aggregation": {
      "description": "Message describing an aggregation. The message includes the aggregation type, parameters, and the field on which to perform the aggregation.",
      "id": "Aggregation",
      "properties": {
        "count": {
          "$ref": "AggregationCount",
          "description": "Count the number of matching objects."
        },
        "field": {
          "description": "The name of the field on which to aggregate.",
          "type": "string"
        },
        "frequency": {
          "$ref": "AggregationFrequency",
          "description": "Creates a frequency distribution of all field values."
        },
        "histogram": {
          "$ref": "AggregationHistogram",
          "description": "Creates a bucketed histogram of field values."
        },
        "sum": {
          "$ref": "AggregationSum",
          "description": "Sum over a numeric field."
        }
      },
      "type": "object"
    },
    "AggregationCount": {
      "description": "Object count.",
      "id": "AggregationCount",
      "properties": {},
      "type": "object"
    },
    "AggregationFrequency": {
      "description": "Frequency distribution of all field values.",
      "id": "AggregationFrequency",
      "properties": {},
      "type": "object"
    },
    "AggregationHistogram": {
      "description": "Histogram of bucketed assets counts by field value.",
      "id": "AggregationHistogram",
      "properties": {
        "lowerBounds": {
          "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": {
            "format": "double",
            "type": "number"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AggregationResult": {
      "description": "Message describing a result of an aggregation.",
      "id": "AggregationResult",
      "properties": {
        "count": {
          "$ref": "AggregationResultCount"
        },
        "field": {
          "type": "string"
        },
        "frequency": {
          "$ref": "AggregationResultFrequency"
        },
        "histogram": {
          "$ref": "AggregationResultHistogram"
        },
        "sum": {
          "$ref": "AggregationResultSum"
        }
      },
      "type": "object"
    },
    "AggregationResultCount": {
      "description": "The result of a count aggregation.",
      "id": "AggregationResultCount",
      "properties": {
        "value": {
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AggregationResultFrequency": {
      "description": "The result of a frequency distribution aggregation.",
      "id": "AggregationResultFrequency",
      "properties": {
        "values": {
          "additionalProperties": {
            "format": "int64",
            "type": "string"
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "AggregationResultHistogram": {
      "description": "The result of a bucketed histogram aggregation.",
      "id": "AggregationResultHistogram",
      "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.",
          "items": {
            "$ref": "AggregationResultHistogramBucket"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AggregationResultHistogramBucket": {
      "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",
      "properties": {
        "count": {
          "description": "Count of items in the bucket.",
          "format": "int64",
          "type": "string"
        },
        "lowerBound": {
          "description": "Lower bound - inclusive.",
          "format": "double",
          "type": "number"
        },
        "upperBound": {
          "description": "Upper bound - exclusive.",
          "format": "double",
          "type": "number"
        }
      },
      "type": "object"
    },
    "AggregationResultSum": {
      "description": "The result of a sum aggregation.",
      "id": "AggregationResultSum",
      "properties": {
        "value": {
          "format": "double",
          "type": "number"
        }
      },
      "type": "object"
    },
    "AggregationSum": {
      "description": "Sum of field values.",
      "id": "AggregationSum",
      "properties": {},
      "type": "object"
    },
    "Asset": {
      "description": "An asset represents a resource in your environment. Asset types include virtual machines and databases.",
      "id": "Asset",
      "properties": {
        "assignedGroups": {
          "description": "Output only. The list of groups that the asset is assigned to.",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        },
        "attributes": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Generic asset attributes.",
          "type": "object"
        },
        "createTime": {
          "description": "Output only. The timestamp when the asset was created.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "insightList": {
          "$ref": "InsightList",
          "description": "Output only. The list of insights associated with the asset.",
          "readOnly": true
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels as key value pairs.",
          "type": "object"
        },
        "name": {
          "description": "Output only. The full name of the asset.",
          "readOnly": true,
          "type": "string"
        },
        "performanceData": {
          "$ref": "AssetPerformanceData",
          "description": "Output only. Performance data for the asset.",
          "readOnly": true
        },
        "sources": {
          "description": "Output only. The list of sources contributing to the asset.",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        },
        "updateTime": {
          "description": "Output only. The timestamp when the asset was last updated.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "virtualMachineDetails": {
          "$ref": "VirtualMachineDetails",
          "description": "Output only. Asset information specific for virtual machines.",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "AssetFrame": {
      "description": "Contains data reported from an inventory source on an asset.",
      "id": "AssetFrame",
      "properties": {
        "attributes": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Generic asset attributes.",
          "type": "object"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels as key value pairs.",
          "type": "object"
        },
        "performanceSamples": {
          "description": "Asset performance data samples.",
          "items": {
            "$ref": "PerformanceSample"
          },
          "type": "array"
        },
        "reportTime": {
          "description": "The time the data was reported.",
          "format": "google-datetime",
          "type": "string"
        },
        "traceToken": {
          "description": "Optional. Trace token is optionally provided to assist with debugging and traceability.",
          "type": "string"
        },
        "virtualMachineDetails": {
          "$ref": "VirtualMachineDetails",
          "description": "Asset information specific for virtual machines."
        }
      },
      "type": "object"
    },
    "AssetList": {
      "description": "Lists the asset IDs of all assets.",
      "id": "AssetList",
      "properties": {
        "assetIds": {
          "description": "A list of asset IDs",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AssetPerformanceData": {
      "description": "Performance data for an asset.",
      "id": "AssetPerformanceData",
      "properties": {
        "dailyResourceUsageAggregations": {
          "description": "Daily resource usage aggregations. Contains all of the data available for an asset, up to the last 420 days.",
          "items": {
            "$ref": "DailyResourceUsageAggregation"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AwsEc2PlatformDetails": {
      "description": "AWS EC2 specific details.",
      "id": "AwsEc2PlatformDetails",
      "properties": {
        "location": {
          "description": "The location of the machine in the AWS format.",
          "type": "string"
        },
        "machineTypeLabel": {
          "description": "AWS platform's machine type label.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AzureVmPlatformDetails": {
      "description": "Azure VM specific details.",
      "id": "AzureVmPlatformDetails",
      "properties": {
        "location": {
          "description": "The location of the machine in the Azure format.",
          "type": "string"
        },
        "machineTypeLabel": {
          "description": "Azure platform's machine type label.",
          "type": "string"
        },
        "provisioningState": {
          "description": "Azure platform's provisioning state.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "BatchDeleteAssetsRequest": {
      "description": "A request to delete a list of asset.",
      "id": "BatchDeleteAssetsRequest",
      "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 10 assets can be deleted in a batch. format: projects/{project}/locations/{location}/asset/{name}.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "BatchUpdateAssetsRequest": {
      "description": "A request to update a list of assets.",
      "id": "BatchUpdateAssetsRequest",
      "properties": {
        "requests": {
          "description": "Required. The request message specifying the resources to update. A maximum of 1000 assets can be modified in a batch.",
          "items": {
            "$ref": "UpdateAssetRequest"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "BatchUpdateAssetsResponse": {
      "description": "Response for updating a list of assets.",
      "id": "BatchUpdateAssetsResponse",
      "properties": {
        "assets": {
          "description": "Update asset content. The content only includes values after field mask being applied.",
          "items": {
            "$ref": "Asset"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "BiosDetails": {
      "description": "Details about the BIOS.",
      "id": "BiosDetails",
      "properties": {
        "biosManufacturer": {
          "description": "BIOS manufacturer.",
          "type": "string"
        },
        "biosName": {
          "description": "BIOS name.",
          "type": "string"
        },
        "biosReleaseDate": {
          "description": "BIOS release date.",
          "type": "string"
        },
        "biosVersion": {
          "description": "BIOS version.",
          "type": "string"
        },
        "smbiosUuid": {
          "description": "SMBIOS UUID.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CancelOperationRequest": {
      "description": "The request message for Operations.CancelOperation.",
      "id": "CancelOperationRequest",
      "properties": {},
      "type": "object"
    },
    "ComputeEngineMigrationTarget": {
      "description": "Compute engine migration target.",
      "id": "ComputeEngineMigrationTarget",
      "properties": {
        "shape": {
          "$ref": "ComputeEngineShapeDescriptor",
          "description": "Description of the suggested shape for the migration target."
        }
      },
      "type": "object"
    },
    "ComputeEnginePreferences": {
      "description": "The user preferences relating to Compute Engine target platform.",
      "id": "ComputeEnginePreferences",
      "properties": {
        "licenseType": {
          "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.",
          "enum": [
            "LICENSE_TYPE_UNSPECIFIED",
            "LICENSE_TYPE_DEFAULT",
            "LICENSE_TYPE_BRING_YOUR_OWN_LICENSE"
          ],
          "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."
          ],
          "type": "string"
        },
        "machinePreferences": {
          "$ref": "MachinePreferences",
          "description": "Preferences concerning the machine types to consider on Compute Engine."
        },
        "persistentDiskType": {
          "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 (default value). Selecting this value allows the system to use any disk type according to reported usage. This a good value to start with.",
            "Standard HDD Persistent Disk.",
            "Balanced Persistent Disk.",
            "SSD Persistent Disk."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "ComputeEngineShapeDescriptor": {
      "description": "Compute Engine target shape descriptor.",
      "id": "ComputeEngineShapeDescriptor",
      "properties": {
        "logicalCoreCount": {
          "description": "Number of logical cores.",
          "format": "int32",
          "type": "integer"
        },
        "machineType": {
          "description": "Compute Engine machine type.",
          "type": "string"
        },
        "memoryMb": {
          "description": "Memory in mebibytes.",
          "format": "int32",
          "type": "integer"
        },
        "physicalCoreCount": {
          "description": "Number of physical cores.",
          "format": "int32",
          "type": "integer"
        },
        "series": {
          "description": "Compute Engine machine series.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CpuUsageSample": {
      "description": "CPU usage sample.",
      "id": "CpuUsageSample",
      "properties": {
        "utilizedPercentage": {
          "description": "Percentage of total CPU capacity utilized. Must be in the interval [0, 100]. On most systems can be calculated using 100 - idle percentage.",
          "format": "float",
          "type": "number"
        }
      },
      "type": "object"
    },
    "DailyResourceUsageAggregation": {
      "description": "Usage data aggregation for a single day.",
      "id": "DailyResourceUsageAggregation",
      "properties": {
        "cpu": {
          "$ref": "DailyResourceUsageAggregationCPU",
          "description": "CPU usage."
        },
        "date": {
          "$ref": "Date",
          "description": "Aggregation date. Day boundaries are at midnight UTC."
        },
        "disk": {
          "$ref": "DailyResourceUsageAggregationDisk",
          "description": "Disk usage."
        },
        "memory": {
          "$ref": "DailyResourceUsageAggregationMemory",
          "description": "Memory usage."
        },
        "network": {
          "$ref": "DailyResourceUsageAggregationNetwork",
          "description": "Network usage."
        }
      },
      "type": "object"
    },
    "DailyResourceUsageAggregationCPU": {
      "description": "Statistical aggregation of CPU usage.",
      "id": "DailyResourceUsageAggregationCPU",
      "properties": {
        "utilizationPercentage": {
          "$ref": "DailyResourceUsageAggregationStats",
          "description": "CPU utilization percentage."
        }
      },
      "type": "object"
    },
    "DailyResourceUsageAggregationDisk": {
      "description": "Statistical aggregation of disk usage.",
      "id": "DailyResourceUsageAggregationDisk",
      "properties": {
        "iops": {
          "$ref": "DailyResourceUsageAggregationStats",
          "description": "Disk I/O operations per second."
        }
      },
      "type": "object"
    },
    "DailyResourceUsageAggregationMemory": {
      "description": "Statistical aggregation of memory usage.",
      "id": "DailyResourceUsageAggregationMemory",
      "properties": {
        "utilizationPercentage": {
          "$ref": "DailyResourceUsageAggregationStats",
          "description": "Memory utilization percentage."
        }
      },
      "type": "object"
    },
    "DailyResourceUsageAggregationNetwork": {
      "description": "Statistical aggregation of network usage.",
      "id": "DailyResourceUsageAggregationNetwork",
      "properties": {
        "egressBps": {
          "$ref": "DailyResourceUsageAggregationStats",
          "description": "Network egress in B/s."
        },
        "ingressBps": {
          "$ref": "DailyResourceUsageAggregationStats",
          "description": "Network ingress in B/s."
        }
      },
      "type": "object"
    },
    "DailyResourceUsageAggregationStats": {
      "description": "Statistical aggregation of samples for a single resource usage.",
      "id": "DailyResourceUsageAggregationStats",
      "properties": {
        "average": {
          "description": "Average usage value.",
          "format": "float",
          "type": "number"
        },
        "median": {
          "description": "Median usage value.",
          "format": "float",
          "type": "number"
        },
        "ninteyFifthPercentile": {
          "description": "95th percentile usage value.",
          "format": "float",
          "type": "number"
        },
        "peak": {
          "description": "Peak usage value.",
          "format": "float",
          "type": "number"
        }
      },
      "type": "object"
    },
    "Date": {
      "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",
      "id": "Date",
      "properties": {
        "day": {
          "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",
          "type": "integer"
        },
        "month": {
          "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
          "format": "int32",
          "type": "integer"
        },
        "year": {
          "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "DateTime": {
      "description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.",
      "id": "DateTime",
      "properties": {
        "day": {
          "description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.",
          "format": "int32",
          "type": "integer"
        },
        "hours": {
          "description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.",
          "format": "int32",
          "type": "integer"
        },
        "minutes": {
          "description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.",
          "format": "int32",
          "type": "integer"
        },
        "month": {
          "description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.",
          "format": "int32",
          "type": "integer"
        },
        "nanos": {
          "description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.",
          "format": "int32",
          "type": "integer"
        },
        "seconds": {
          "description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.",
          "format": "int32",
          "type": "integer"
        },
        "timeZone": {
          "$ref": "TimeZone",
          "description": "Time zone."
        },
        "utcOffset": {
          "description": "UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.",
          "format": "google-duration",
          "type": "string"
        },
        "year": {
          "description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "DiskEntry": {
      "description": "Single disk entry.",
      "id": "DiskEntry",
      "properties": {
        "diskLabel": {
          "description": "Disk label.",
          "type": "string"
        },
        "diskLabelType": {
          "description": "Disk label type (e.g. BIOS/GPT)",
          "type": "string"
        },
        "hwAddress": {
          "description": "Disk hardware address (e.g. 0:1 for SCSI).",
          "type": "string"
        },
        "interfaceType": {
          "description": "Disks interface type (e.g. SATA/SCSI)",
          "type": "string"
        },
        "partitions": {
          "$ref": "DiskPartitionList",
          "description": "Partition layout."
        },
        "status": {
          "description": "Disk status (e.g. online).",
          "type": "string"
        },
        "totalCapacityBytes": {
          "description": "Disk capacity.",
          "format": "int64",
          "type": "string"
        },
        "totalFreeBytes": {
          "description": "Disk free space.",
          "format": "int64",
          "type": "string"
        },
        "vmwareConfig": {
          "$ref": "VmwareDiskConfig",
          "description": "VMware disk details."
        }
      },
      "type": "object"
    },
    "DiskEntryList": {
      "description": "VM disks.",
      "id": "DiskEntryList",
      "properties": {
        "entries": {
          "description": "Disk entries.",
          "items": {
            "$ref": "DiskEntry"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "DiskPartition": {
      "description": "Disk Partition details.",
      "id": "DiskPartition",
      "properties": {
        "capacityBytes": {
          "description": "Partition capacity.",
          "format": "int64",
          "type": "string"
        },
        "fileSystem": {
          "description": "Partition file system.",
          "type": "string"
        },
        "freeBytes": {
          "description": "Partition free space.",
          "format": "int64",
          "type": "string"
        },
        "mountPoint": {
          "description": "Mount pount (Linux/Windows) or drive letter (Windows).",
          "type": "string"
        },
        "subPartitions": {
          "$ref": "DiskPartitionList",
          "description": "Sub-partitions."
        },
        "type": {
          "description": "Partition type (e.g. BIOS boot).",
          "type": "string"
        },
        "uuid": {
          "description": "Partition UUID.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DiskPartitionList": {
      "description": "Disk partition list.",
      "id": "DiskPartitionList",
      "properties": {
        "entries": {
          "description": "Partition entries.",
          "items": {
            "$ref": "DiskPartition"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "DiskUsageSample": {
      "description": "Disk usage sample. Values are across all disks.",
      "id": "DiskUsageSample",
      "properties": {
        "averageIops": {
          "description": "Average IOPS sampled over a short window. Must be non-negative.",
          "format": "float",
          "type": "number"
        }
      },
      "type": "object"
    },
    "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); }",
      "id": "Empty",
      "properties": {},
      "type": "object"
    },
    "ExecutionReport": {
      "description": "A resource that reports result of the import job execution.",
      "id": "ExecutionReport",
      "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.",
          "format": "int32",
          "type": "integer"
        },
        "jobErrors": {
          "description": "List of job-level errors. Deprecated, use the job errors under execution_errors instead.",
          "items": {
            "$ref": "ImportError"
          },
          "type": "array"
        },
        "totalRowsCount": {
          "description": "Total number of rows in the import job.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "FileValidationReport": {
      "description": "A resource that aggregates the validation errors found in an import job file.",
      "id": "FileValidationReport",
      "properties": {
        "fileErrors": {
          "description": "List of file level errors.",
          "items": {
            "$ref": "ImportError"
          },
          "type": "array"
        },
        "fileName": {
          "description": "The name of the file.",
          "type": "string"
        },
        "partialReport": {
          "description": "Flag indicating that processing was aborted due to maximum number of errors.",
          "type": "boolean"
        },
        "rowErrors": {
          "description": "Partial list of rows that encountered validation error.",
          "items": {
            "$ref": "ImportRowError"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "FitDescriptor": {
      "description": "Describes the fit level of an asset for migration to a specific target.",
      "id": "FitDescriptor",
      "properties": {
        "fitLevel": {
          "description": "Fit level.",
          "enum": [
            "FIT_LEVEL_UNSPECIFIED",
            "FIT",
            "NO_FIT",
            "REQUIRES_EFFORT"
          ],
          "enumDescriptions": [
            "Not enough information.",
            "Fit.",
            "No Fit.",
            "Fit with effort."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "Frames": {
      "description": "Collection of frame data.",
      "id": "Frames",
      "properties": {
        "framesData": {
          "description": "A repeated field of asset data.",
          "items": {
            "$ref": "AssetFrame"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "FstabEntry": {
      "description": "Single fstab entry.",
      "id": "FstabEntry",
      "properties": {
        "file": {
          "description": "The mount point for the filesystem.",
          "type": "string"
        },
        "freq": {
          "description": "Used by dump to determine which filesystems need to be dumped.",
          "format": "int32",
          "type": "integer"
        },
        "mntops": {
          "description": "Mount options associated with the filesystem.",
          "type": "string"
        },
        "passno": {
          "description": "Used by the fsck(8) program to determine the order in which filesystem checks are done at reboot time.",
          "format": "int32",
          "type": "integer"
        },
        "spec": {
          "description": "The block special device or remote filesystem to be mounted.",
          "type": "string"
        },
        "vfstype": {
          "description": "The type of the filesystem.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "FstabEntryList": {
      "description": "Fstab content.",
      "id": "FstabEntryList",
      "properties": {
        "entries": {
          "description": "Fstab entries.",
          "items": {
            "$ref": "FstabEntry"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GCSPayloadInfo": {
      "description": "A resource that represents a payload hosted on Google Cloud Storage.",
      "id": "GCSPayloadInfo",
      "properties": {
        "format": {
          "description": "The import job format.",
          "enum": [
            "IMPORT_JOB_FORMAT_UNSPECIFIED",
            "IMPORT_JOB_FORMAT_CMDB",
            "IMPORT_JOB_FORMAT_RVTOOLS_XLSX",
            "IMPORT_JOB_FORMAT_RVTOOLS_CSV",
            "IMPORT_JOB_FORMAT_JSON_FRAME",
            "IMPORT_JOB_FORMAT_EXPORTED_AWS_CSV",
            "IMPORT_JOB_FORMAT_EXPORTED_AZURE_CSV",
            "IMPORT_JOB_FORMAT_MANUAL_CSV"
          ],
          "enumDescriptions": [
            "Default value.",
            "Configuration management DB format.",
            "RVTools format (XLSX).",
            "RVTools format (CSV).",
            "`AssetFrame` list in JSON format.",
            "CSV format exported from AWS using the AWS collection script.",
            "CSV format exported from Azure using the Azure collection script.",
            "CSV format created manually. For more information, see Manually create and upload data tables."
          ],
          "type": "string"
        },
        "path": {
          "description": "The payload path in Google Cloud Storage.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GenericPlatformDetails": {
      "description": "Generic platform details.",
      "id": "GenericPlatformDetails",
      "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"
        }
      },
      "type": "object"
    },
    "GoogleKubernetesEngineMigrationTarget": {
      "description": "GKE migration target.",
      "id": "GoogleKubernetesEngineMigrationTarget",
      "properties": {},
      "type": "object"
    },
    "Group": {
      "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.",
      "id": "Group",
      "properties": {
        "createTime": {
          "description": "Output only. The timestamp when the group was created.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "The description of the resource.",
          "type": "string"
        },
        "displayName": {
          "description": "User-friendly display name.",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels as key value pairs.",
          "type": "object"
        },
        "name": {
          "description": "Output only. The name of the group.",
          "readOnly": true,
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. The timestamp when the group was last updated.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "GuestConfigDetails": {
      "description": "Guest OS config information.",
      "id": "GuestConfigDetails",
      "properties": {
        "fstab": {
          "$ref": "FstabEntryList",
          "description": "Mount list (Linux fstab)."
        },
        "hosts": {
          "$ref": "HostsEntryList",
          "description": "Hosts file (/etc/hosts)."
        },
        "issue": {
          "description": "OS issue (typically /etc/issue in Linux).",
          "type": "string"
        },
        "nfsExports": {
          "$ref": "NfsExportList",
          "description": "NFS exports."
        },
        "selinux": {
          "$ref": "Selinux",
          "description": "SELinux details."
        }
      },
      "type": "object"
    },
    "GuestInstalledApplication": {
      "description": "Guest installed application information.",
      "id": "GuestInstalledApplication",
      "properties": {
        "name": {
          "description": "Installed application name .",
          "type": "string"
        },
        "path": {
          "description": "Source path.",
          "type": "string"
        },
        "time": {
          "description": "Date application was installed.",
          "type": "string"
        },
        "vendor": {
          "description": "Installed application vendor.",
          "type": "string"
        },
        "version": {
          "description": "Installed application version.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GuestInstalledApplicationList": {
      "description": "Guest installed application list.",
      "id": "GuestInstalledApplicationList",
      "properties": {
        "entries": {
          "description": "Application entries.",
          "items": {
            "$ref": "GuestInstalledApplication"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GuestOsDetails": {
      "description": "Information from Guest-level collections.",
      "id": "GuestOsDetails",
      "properties": {
        "config": {
          "$ref": "GuestConfigDetails",
          "description": "OS and app configuration."
        },
        "runtime": {
          "$ref": "GuestRuntimeDetails",
          "description": "Runtime information."
        }
      },
      "type": "object"
    },
    "GuestRuntimeDetails": {
      "description": "Guest OS runtime information.",
      "id": "GuestRuntimeDetails",
      "properties": {
        "domain": {
          "description": "Domain, e.g. c.stratozone-development.internal.",
          "type": "string"
        },
        "installedApps": {
          "$ref": "GuestInstalledApplicationList",
          "description": "Installed applications information."
        },
        "lastUptime": {
          "$ref": "Date",
          "description": "Date since last booted (last uptime date)."
        },
        "machineName": {
          "description": "Machine name.",
          "type": "string"
        },
        "networkInfo": {
          "$ref": "RuntimeNetworkInfo",
          "description": "Runtime network information (connections, ports)."
        },
        "openFileList": {
          "$ref": "OpenFileList",
          "description": "Open files information."
        },
        "processes": {
          "$ref": "RunningProcessList",
          "description": "Running processes."
        },
        "services": {
          "$ref": "RunningServiceList",
          "description": "Running background services."
        }
      },
      "type": "object"
    },
    "HostsEntry": {
      "description": "Single /etc/hosts entry.",
      "id": "HostsEntry",
      "properties": {
        "hostNames": {
          "description": "List of host names / aliases.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ip": {
          "description": "IP (raw, IPv4/6 agnostic).",
          "type": "string"
        }
      },
      "type": "object"
    },
    "HostsEntryList": {
      "description": "Hosts content.",
      "id": "HostsEntryList",
      "properties": {
        "entries": {
          "description": "Hosts entries.",
          "items": {
            "$ref": "HostsEntry"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ImportDataFile": {
      "description": "A resource that represents a payload file in an import job.",
      "id": "ImportDataFile",
      "properties": {
        "createTime": {
          "description": "Output only. The timestamp when the file was created.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "displayName": {
          "description": "User-friendly display name. Maximum length is 63 characters.",
          "type": "string"
        },
        "format": {
          "description": "The payload format.",
          "enum": [
            "IMPORT_JOB_FORMAT_UNSPECIFIED",
            "IMPORT_JOB_FORMAT_CMDB",
            "IMPORT_JOB_FORMAT_RVTOOLS_XLSX",
            "IMPORT_JOB_FORMAT_RVTOOLS_CSV",
            "IMPORT_JOB_FORMAT_JSON_FRAME",
            "IMPORT_JOB_FORMAT_EXPORTED_AWS_CSV",
            "IMPORT_JOB_FORMAT_EXPORTED_AZURE_CSV",
            "IMPORT_JOB_FORMAT_MANUAL_CSV"
          ],
          "enumDescriptions": [
            "Default value.",
            "Configuration management DB format.",
            "RVTools format (XLSX).",
            "RVTools format (CSV).",
            "`AssetFrame` list in JSON format.",
            "CSV format exported from AWS using the AWS collection script.",
            "CSV format exported from Azure using the Azure collection script.",
            "CSV format created manually. For more information, see Manually create and upload data tables."
          ],
          "type": "string"
        },
        "name": {
          "description": "Output only. The name of the file.",
          "readOnly": true,
          "type": "string"
        },
        "state": {
          "description": "Output only. The state of the import data file.",
          "enum": [
            "STATE_UNSPECIFIED",
            "CREATING",
            "ACTIVE"
          ],
          "enumDescriptions": [
            "Default value.",
            "The data file is being created.",
            "The data file completed initialization."
          ],
          "readOnly": true,
          "type": "string"
        },
        "uploadFileInfo": {
          "$ref": "UploadFileInfo",
          "description": "Information about a file that is uploaded to a storage service."
        }
      },
      "type": "object"
    },
    "ImportError": {
      "description": "A resource that reports the errors encountered while processing an import job.",
      "id": "ImportError",
      "properties": {
        "errorDetails": {
          "description": "The error information.",
          "type": "string"
        },
        "severity": {
          "description": "The severity of the error.",
          "enum": [
            "SEVERITY_UNSPECIFIED",
            "ERROR",
            "WARNING",
            "INFO"
          ],
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "ImportJob": {
      "description": "A resource that represents the background job that imports asset frames.",
      "id": "ImportJob",
      "properties": {
        "assetSource": {
          "description": "Required. Reference to a source.",
          "type": "string"
        },
        "completeTime": {
          "description": "Output only. The timestamp when the import job was completed.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The timestamp when the import job was created.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "displayName": {
          "description": "User-friendly display name. Maximum length is 63 characters.",
          "type": "string"
        },
        "executionReport": {
          "$ref": "ExecutionReport",
          "description": "Output only. The report with the results of running the import job.",
          "readOnly": true
        },
        "gcsPayload": {
          "$ref": "GCSPayloadInfo",
          "description": "The payload is in Google Cloud Storage."
        },
        "inlinePayload": {
          "$ref": "InlinePayloadInfo",
          "description": "The payload is included in the request, mainly used for small import jobs."
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels as key value pairs.",
          "type": "object"
        },
        "name": {
          "description": "Output only. The full name of the import job.",
          "readOnly": true,
          "type": "string"
        },
        "state": {
          "description": "Output only. The state of the import job.",
          "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."
          ],
          "readOnly": true,
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. The timestamp when the import job was last updated.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "validationReport": {
          "$ref": "ValidationReport",
          "description": "Output only. The report with the validation results of the import job.",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "ImportRowError": {
      "description": "A resource that reports the import job errors at row level.",
      "id": "ImportRowError",
      "properties": {
        "errors": {
          "description": "The list of errors detected in the row.",
          "items": {
            "$ref": "ImportError"
          },
          "type": "array"
        },
        "rowNumber": {
          "description": "The row number where the error was detected.",
          "format": "int32",
          "type": "integer"
        },
        "vmName": {
          "description": "The name of the VM in the row.",
          "type": "string"
        },
        "vmUuid": {
          "description": "The VM UUID.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "InlinePayloadInfo": {
      "description": "A resource that represents the inline import job payload.",
      "id": "InlinePayloadInfo",
      "properties": {
        "format": {
          "description": "The import job format.",
          "enum": [
            "IMPORT_JOB_FORMAT_UNSPECIFIED",
            "IMPORT_JOB_FORMAT_CMDB",
            "IMPORT_JOB_FORMAT_RVTOOLS_XLSX",
            "IMPORT_JOB_FORMAT_RVTOOLS_CSV",
            "IMPORT_JOB_FORMAT_JSON_FRAME",
            "IMPORT_JOB_FORMAT_EXPORTED_AWS_CSV",
            "IMPORT_JOB_FORMAT_EXPORTED_AZURE_CSV",
            "IMPORT_JOB_FORMAT_MANUAL_CSV"
          ],
          "enumDescriptions": [
            "Default value.",
            "Configuration management DB format.",
            "RVTools format (XLSX).",
            "RVTools format (CSV).",
            "`AssetFrame` list in JSON format.",
            "CSV format exported from AWS using the AWS collection script.",
            "CSV format exported from Azure using the Azure collection script.",
            "CSV format created manually. For more information, see Manually create and upload data tables."
          ],
          "type": "string"
        },
        "payload": {
          "description": "List of payload files.",
          "items": {
            "$ref": "PayloadFile"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Insight": {
      "description": "An insight about an asset.",
      "id": "Insight",
      "properties": {
        "migrationInsight": {
          "$ref": "MigrationInsight",
          "description": "Output only. An insight about potential migrations for an asset.",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "InsightList": {
      "description": "Message containing insights list.",
      "id": "InsightList",
      "properties": {
        "insights": {
          "description": "Output only. Insights of the list.",
          "items": {
            "$ref": "Insight"
          },
          "readOnly": true,
          "type": "array"
        },
        "updateTime": {
          "description": "Output only. Update timestamp.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListAssetsResponse": {
      "description": "Response message for listing assets.",
      "id": "ListAssetsResponse",
      "properties": {
        "assets": {
          "description": "A list of assets.",
          "items": {
            "$ref": "Asset"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListGroupsResponse": {
      "description": "A response for listing groups.",
      "id": "ListGroupsResponse",
      "properties": {
        "groups": {
          "description": "The list of Group",
          "items": {
            "$ref": "Group"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListImportDataFilesResponse": {
      "description": "Response for listing payload files of an import job.",
      "id": "ListImportDataFilesResponse",
      "properties": {
        "importDataFiles": {
          "description": "The list of import data files.",
          "items": {
            "$ref": "ImportDataFile"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListImportJobsResponse": {
      "description": "A response for listing import jobs.",
      "id": "ListImportJobsResponse",
      "properties": {
        "importJobs": {
          "description": "The list of import jobs.",
          "items": {
            "$ref": "ImportJob"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListLocationsResponse": {
      "description": "The response message for Locations.ListLocations.",
      "id": "ListLocationsResponse",
      "properties": {
        "locations": {
          "description": "A list of locations that matches the specified filter in the request.",
          "items": {
            "$ref": "Location"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListOperationsResponse": {
      "description": "The response message for Operations.ListOperations.",
      "id": "ListOperationsResponse",
      "properties": {
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "operations": {
          "description": "A list of operations that matches the specified filter in the request.",
          "items": {
            "$ref": "Operation"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListPreferenceSetsResponse": {
      "description": "Response message for listing preference sets.",
      "id": "ListPreferenceSetsResponse",
      "properties": {
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "preferenceSets": {
          "description": "The list of PreferenceSets",
          "items": {
            "$ref": "PreferenceSet"
          },
          "type": "array"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListSourcesResponse": {
      "description": "Response message for listing sources.",
      "id": "ListSourcesResponse",
      "properties": {
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "sources": {
          "description": "The list of sources.",
          "items": {
            "$ref": "Source"
          },
          "type": "array"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Location": {
      "description": "A resource that represents Google Cloud Platform location.",
      "id": "Location",
      "properties": {
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "type": "object"
        },
        "locationId": {
          "description": "The canonical id for this location. For example: `\"us-east1\"`.",
          "type": "string"
        },
        "metadata": {
          "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.",
          "type": "object"
        },
        "name": {
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`",
          "type": "string"
        }
      },
      "type": "object"
    },
    "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.",
      "id": "MachinePreferences",
      "properties": {
        "allowedMachineSeries": {
          "description": "Compute Engine machine series to consider for insights and recommendations. If empty, no restriction is applied on the machine series.",
          "items": {
            "$ref": "MachineSeries"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "MachineSeries": {
      "description": "A Compute Engine machine series.",
      "id": "MachineSeries",
      "properties": {
        "code": {
          "description": "Code to identify a Compute Engine machine series. Consult https://cloud.google.com/compute/docs/machine-resource#machine_type_comparison for more details on the available series.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "MemoryUsageSample": {
      "description": "Memory usage sample.",
      "id": "MemoryUsageSample",
      "properties": {
        "utilizedPercentage": {
          "description": "Percentage of system memory utilized. Must be in the interval [0, 100].",
          "format": "float",
          "type": "number"
        }
      },
      "type": "object"
    },
    "MigrationInsight": {
      "description": "An insight about potential migrations for an asset.",
      "id": "MigrationInsight",
      "properties": {
        "computeEngineTarget": {
          "$ref": "ComputeEngineMigrationTarget",
          "description": "Output only. A Google Compute Engine target.",
          "readOnly": true
        },
        "fit": {
          "$ref": "FitDescriptor",
          "description": "Output only. Description of how well the asset this insight is associated with fits the proposed migration.",
          "readOnly": true
        },
        "gkeTarget": {
          "$ref": "GoogleKubernetesEngineMigrationTarget",
          "description": "Output only. A Google Kubernetes Engine target.",
          "readOnly": true
        },
        "vmwareEngineTarget": {
          "$ref": "VmwareEngineMigrationTarget",
          "description": "Output only. A VMWare Engine target.",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "NetworkAdapterDetails": {
      "description": "Details of network adapter.",
      "id": "NetworkAdapterDetails",
      "properties": {
        "adapterType": {
          "description": "Network adapter type (e.g. VMXNET3).",
          "type": "string"
        },
        "addresses": {
          "$ref": "NetworkAddressList",
          "description": "NetworkAddressList"
        },
        "macAddress": {
          "description": "MAC address.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "NetworkAdapterList": {
      "description": "List of network adapters.",
      "id": "NetworkAdapterList",
      "properties": {
        "networkAdapters": {
          "description": "Network adapter descriptions.",
          "items": {
            "$ref": "NetworkAdapterDetails"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "NetworkAddress": {
      "description": "Details of network address.",
      "id": "NetworkAddress",
      "properties": {
        "assignment": {
          "description": "Whether DHCP is used to assign addresses.",
          "enum": [
            "ADDRESS_ASSIGNMENT_UNSPECIFIED",
            "ADDRESS_ASSIGNMENT_STATIC",
            "ADDRESS_ASSIGNMENT_DHCP"
          ],
          "enumDescriptions": [
            "Unknown (default value).",
            "Staticly assigned IP.",
            "Dynamically assigned IP (DHCP)."
          ],
          "type": "string"
        },
        "bcast": {
          "description": "Broadcast address.",
          "type": "string"
        },
        "fqdn": {
          "description": "Fully qualified domain name.",
          "type": "string"
        },
        "ipAddress": {
          "description": "Assigned or configured IP Address.",
          "type": "string"
        },
        "subnetMask": {
          "description": "Subnet mask.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "NetworkAddressList": {
      "description": "List of allocated/assigned network addresses.",
      "id": "NetworkAddressList",
      "properties": {
        "addresses": {
          "description": "Network address entries.",
          "items": {
            "$ref": "NetworkAddress"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "NetworkConnection": {
      "id": "NetworkConnection",
      "properties": {
        "localIpAddress": {
          "description": "Local IP address.",
          "type": "string"
        },
        "localPort": {
          "description": "Local port.",
          "format": "int32",
          "type": "integer"
        },
        "pid": {
          "description": "Process ID.",
          "format": "int64",
          "type": "string"
        },
        "processName": {
          "description": "Process or service name.",
          "type": "string"
        },
        "protocol": {
          "description": "Connection protocol (e.g. TCP/UDP).",
          "type": "string"
        },
        "remoteIpAddress": {
          "description": "Remote IP address.",
          "type": "string"
        },
        "remotePort": {
          "description": "Remote port.",
          "format": "int32",
          "type": "integer"
        },
        "state": {
          "description": "Connection state (e.g. CONNECTED).",
          "type": "string"
        }
      },
      "type": "object"
    },
    "NetworkConnectionList": {
      "description": "Network connection list.",
      "id": "NetworkConnectionList",
      "properties": {
        "entries": {
          "description": "Network connection entries.",
          "items": {
            "$ref": "NetworkConnection"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "NetworkUsageSample": {
      "description": "Network usage sample. Values are across all network interfaces.",
      "id": "NetworkUsageSample",
      "properties": {
        "averageEgressBps": {
          "description": "Average network egress in B/s sampled over a short window. Must be non-negative.",
          "format": "float",
          "type": "number"
        },
        "averageIngressBps": {
          "description": "Average network ingress in B/s sampled over a short window. Must be non-negative.",
          "format": "float",
          "type": "number"
        }
      },
      "type": "object"
    },
    "NfsExport": {
      "description": "NFS export.",
      "id": "NfsExport",
      "properties": {
        "exportDirectory": {
          "description": "The directory being exported.",
          "type": "string"
        },
        "hosts": {
          "description": "The hosts or networks to which the export is being shared.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "NfsExportList": {
      "description": "NFS exports.",
      "id": "NfsExportList",
      "properties": {
        "entries": {
          "description": "NFS export entries.",
          "items": {
            "$ref": "NfsExport"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "OpenFileDetails": {
      "description": "Open file Information.",
      "id": "OpenFileDetails",
      "properties": {
        "command": {
          "description": "Opened file command.",
          "type": "string"
        },
        "filePath": {
          "description": "Opened file file path.",
          "type": "string"
        },
        "fileType": {
          "description": "Opened file file type.",
          "type": "string"
        },
        "user": {
          "description": "Opened file user.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "OpenFileList": {
      "description": "Open file list.",
      "id": "OpenFileList",
      "properties": {
        "entries": {
          "description": "Open file details entries.",
          "items": {
            "$ref": "OpenFileDetails"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Operation": {
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "id": "Operation",
      "properties": {
        "done": {
          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
          "type": "boolean"
        },
        "error": {
          "$ref": "Status",
          "description": "The error result of the operation in case of failure or cancellation."
        },
        "metadata": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "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"
        },
        "name": {
          "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}`.",
          "type": "string"
        },
        "response": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "description": "The normal response of the operation in case of success. 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"
        }
      },
      "type": "object"
    },
    "OperationMetadata": {
      "description": "Represents the metadata of the long-running operation.",
      "id": "OperationMetadata",
      "properties": {
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The time the operation was created.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "endTime": {
          "description": "Output only. The time the operation finished running.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "requestedCancellation": {
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
          "readOnly": true,
          "type": "boolean"
        },
        "statusMessage": {
          "description": "Output only. Human-readable status of the operation, if any.",
          "readOnly": true,
          "type": "string"
        },
        "target": {
          "description": "Output only. Server-defined resource path for the target of the operation.",
          "readOnly": true,
          "type": "string"
        },
        "verb": {
          "description": "Output only. Name of the verb executed by the operation.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "PayloadFile": {
      "description": "Payload file for inline import job payload.",
      "id": "PayloadFile",
      "properties": {
        "data": {
          "description": "The file data.",
          "format": "byte",
          "type": "string"
        },
        "name": {
          "description": "The file name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "PerformanceSample": {
      "description": "Performance data sample.",
      "id": "PerformanceSample",
      "properties": {
        "cpu": {
          "$ref": "CpuUsageSample",
          "description": "CPU usage sample."
        },
        "disk": {
          "$ref": "DiskUsageSample",
          "description": "Disk usage sample."
        },
        "memory": {
          "$ref": "MemoryUsageSample",
          "description": "Memory usage sample."
        },
        "network": {
          "$ref": "NetworkUsageSample",
          "description": "Network usage sample."
        },
        "sampleTime": {
          "description": "Time the sample was collected.",
          "format": "google-datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "PhysicalPlatformDetails": {
      "description": "Platform specific details for Physical Machines.",
      "id": "PhysicalPlatformDetails",
      "properties": {
        "location": {
          "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.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "PlatformDetails": {
      "description": "Information about the platform.",
      "id": "PlatformDetails",
      "properties": {
        "awsEc2Details": {
          "$ref": "AwsEc2PlatformDetails",
          "description": "AWS EC2 specific details."
        },
        "azureVmDetails": {
          "$ref": "AzureVmPlatformDetails",
          "description": "Azure VM specific details."
        },
        "genericDetails": {
          "$ref": "GenericPlatformDetails",
          "description": "Generic platform details."
        },
        "physicalDetails": {
          "$ref": "PhysicalPlatformDetails",
          "description": "Physical machines platform details."
        },
        "vmwareDetails": {
          "$ref": "VmwarePlatformDetails",
          "description": "VMware specific details."
        }
      },
      "type": "object"
    },
    "PreferenceSet": {
      "description": "The preferences that apply to all assets in a given context.",
      "id": "PreferenceSet",
      "properties": {
        "createTime": {
          "description": "Output only. The timestamp when the preference set was created.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "A description of the preference set.",
          "type": "string"
        },
        "displayName": {
          "description": "User-friendly display name. Maximum length is 63 characters.",
          "type": "string"
        },
        "name": {
          "description": "Output only. Name of the preference set.",
          "readOnly": true,
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. The timestamp when the preference set was last updated.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "virtualMachinePreferences": {
          "$ref": "VirtualMachinePreferences",
          "description": "A set of preferences that applies to all virtual machines in the context."
        }
      },
      "type": "object"
    },
    "RegionPreferences": {
      "description": "The user preferences relating to target regions.",
      "id": "RegionPreferences",
      "properties": {
        "preferredRegions": {
          "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.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "RemoveAssetsFromGroupRequest": {
      "description": "A request to remove assets from a group.",
      "id": "RemoveAssetsFromGroupRequest",
      "properties": {
        "allowMissing": {
          "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`.",
          "type": "boolean"
        },
        "assets": {
          "$ref": "AssetList",
          "description": "Required. List of assets to be removed. The maximum number of assets that can be removed in a single request is 1000."
        },
        "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"
        }
      },
      "type": "object"
    },
    "ReportAssetFramesResponse": {
      "description": "A response to a call to `ReportAssetFrame`.",
      "id": "ReportAssetFramesResponse",
      "properties": {},
      "type": "object"
    },
    "RunImportJobRequest": {
      "description": "A request to run an import job.",
      "id": "RunImportJobRequest",
      "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"
        }
      },
      "type": "object"
    },
    "RunningProcess": {
      "description": "Guest OS running process details.",
      "id": "RunningProcess",
      "properties": {
        "attributes": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Process extended attributes.",
          "type": "object"
        },
        "cmdline": {
          "description": "Process full command line.",
          "type": "string"
        },
        "exePath": {
          "description": "Process binary path.",
          "type": "string"
        },
        "pid": {
          "description": "Process ID.",
          "format": "int64",
          "type": "string"
        },
        "user": {
          "description": "User running the process.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RunningProcessList": {
      "description": "List of running guest OS processes.",
      "id": "RunningProcessList",
      "properties": {
        "processes": {
          "description": "Running process entries.",
          "items": {
            "$ref": "RunningProcess"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "RunningService": {
      "description": "Guest OS running service details.",
      "id": "RunningService",
      "properties": {
        "cmdline": {
          "description": "Service command line.",
          "type": "string"
        },
        "exePath": {
          "description": "Service binary path.",
          "type": "string"
        },
        "name": {
          "description": "Service name.",
          "type": "string"
        },
        "pid": {
          "description": "Service pid.",
          "format": "int64",
          "type": "string"
        },
        "startMode": {
          "description": "Service start mode (raw, OS-agnostic).",
          "type": "string"
        },
        "state": {
          "description": "Service state (raw, OS-agnostic).",
          "type": "string"
        },
        "status": {
          "description": "Service status.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RunningServiceList": {
      "description": "List of running guest OS services.",
      "id": "RunningServiceList",
      "properties": {
        "services": {
          "description": "Running service entries.",
          "items": {
            "$ref": "RunningService"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "RuntimeNetworkInfo": {
      "description": "Runtime networking information.",
      "id": "RuntimeNetworkInfo",
      "properties": {
        "connections": {
          "$ref": "NetworkConnectionList",
          "description": "Network connections."
        },
        "netstat": {
          "description": "Netstat (raw, OS-agnostic).",
          "type": "string"
        },
        "netstatTime": {
          "$ref": "DateTime",
          "description": "Netstat time collected."
        }
      },
      "type": "object"
    },
    "Selinux": {
      "description": "SELinux details.",
      "id": "Selinux",
      "properties": {
        "enabled": {
          "description": "Is SELinux enabled.",
          "type": "boolean"
        },
        "mode": {
          "description": "SELinux mode enforcing / permissive.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Settings": {
      "description": "Describes the Migration Center settings related to the project.",
      "id": "Settings",
      "properties": {
        "name": {
          "description": "Output only. The name of the resource.",
          "readOnly": true,
          "type": "string"
        },
        "preferenceSet": {
          "description": "The preference set used by default for a project.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Source": {
      "description": "Source represents an object from which asset information is streamed to Migration Center.",
      "id": "Source",
      "properties": {
        "createTime": {
          "description": "Output only. The timestamp when the source was created.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "Free-text description.",
          "type": "string"
        },
        "displayName": {
          "description": "User-friendly display name.",
          "type": "string"
        },
        "isManaged": {
          "description": "If `true`, the source is managed by other service(s).",
          "type": "boolean"
        },
        "name": {
          "description": "Output only. The full name of the source.",
          "readOnly": true,
          "type": "string"
        },
        "pendingFrameCount": {
          "description": "Output only. Number of frames that are still being processed.",
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        },
        "priority": {
          "description": "The information confidence of the source. The higher the value, the higher the confidence.",
          "format": "int32",
          "type": "integer"
        },
        "type": {
          "description": "Data source type.",
          "enum": [
            "SOURCE_TYPE_UNKNOWN",
            "SOURCE_TYPE_UPLOAD",
            "SOURCE_TYPE_GUEST_OS_SCAN",
            "SOURCE_TYPE_INVENTORY_SCAN",
            "SOURCE_TYPE_CUSTOM"
          ],
          "enumDescriptions": [
            "Unspecified",
            "Manually uploaded file (e.g. CSV)",
            "Guest-level info",
            "Inventory-level scan",
            "Third-party owned sources."
          ],
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. The timestamp when the source was last updated.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "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).",
      "id": "Status",
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "format": "int32",
          "type": "integer"
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "items": {
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL.",
              "type": "any"
            },
            "type": "object"
          },
          "type": "array"
        },
        "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"
        }
      },
      "type": "object"
    },
    "TimeZone": {
      "description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).",
      "id": "TimeZone",
      "properties": {
        "id": {
          "description": "IANA Time Zone Database time zone, e.g. \"America/New_York\".",
          "type": "string"
        },
        "version": {
          "description": "Optional. IANA Time Zone Database version number, e.g. \"2019a\".",
          "type": "string"
        }
      },
      "type": "object"
    },
    "UpdateAssetRequest": {
      "description": "A request to update an asset.",
      "id": "UpdateAssetRequest",
      "properties": {
        "asset": {
          "$ref": "Asset",
          "description": "Required. The resource being updated."
        },
        "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"
        },
        "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.",
          "format": "google-fieldmask",
          "type": "string"
        }
      },
      "type": "object"
    },
    "UploadFileInfo": {
      "description": "A resource that contains a URI to which a data file can be uploaded.",
      "id": "UploadFileInfo",
      "properties": {
        "uri": {
          "description": "Output only. Upload URI for the file.",
          "readOnly": true,
          "type": "string"
        },
        "uriExpirationTime": {
          "description": "Output only. Expiration time of the upload URI.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "ValidateImportJobRequest": {
      "description": "A request to validate an import job.",
      "id": "ValidateImportJobRequest",
      "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"
        }
      },
      "type": "object"
    },
    "ValidationReport": {
      "description": "A resource that aggregates errors across import job files.",
      "id": "ValidationReport",
      "properties": {
        "fileValidations": {
          "description": "List of errors found in files.",
          "items": {
            "$ref": "FileValidationReport"
          },
          "type": "array"
        },
        "jobErrors": {
          "description": "List of job level errors.",
          "items": {
            "$ref": "ImportError"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "VirtualMachineArchitectureDetails": {
      "description": "Details of the VM architecture.",
      "id": "VirtualMachineArchitectureDetails",
      "properties": {
        "bios": {
          "$ref": "BiosDetails",
          "description": "BIOS Details."
        },
        "cpuArchitecture": {
          "description": "CPU architecture, e.g., \"x64-based PC\", \"x86_64\", \"i686\" etc.",
          "type": "string"
        },
        "cpuManufacturer": {
          "description": "CPU manufacturer, e.g., \"Intel\", \"AMD\".",
          "type": "string"
        },
        "cpuName": {
          "description": "CPU name, e.g., \"Intel Xeon E5-2690\", \"AMD EPYC 7571\" etc.",
          "type": "string"
        },
        "cpuSocketCount": {
          "description": "Number of processor sockets allocated to the machine.",
          "format": "int32",
          "type": "integer"
        },
        "cpuThreadCount": {
          "description": "Number of CPU threads allocated to the machine.",
          "format": "int32",
          "type": "integer"
        },
        "firmware": {
          "description": "Firmware (BIOS/efi).",
          "type": "string"
        },
        "hyperthreading": {
          "description": "CPU hyperthreading support.",
          "enum": [
            "HYPER_THREADING_UNSPECIFIED",
            "HYPER_THREADING_DISABLED",
            "HYPER_THREADING_ENABLED"
          ],
          "enumDescriptions": [
            "Unknown (default value).",
            "Hyperthreading is disabled.",
            "Hyperthreading is enabled."
          ],
          "type": "string"
        },
        "vendor": {
          "description": "Hardware vendor.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "VirtualMachineDetails": {
      "description": "Details of a VirtualMachine.",
      "id": "VirtualMachineDetails",
      "properties": {
        "coreCount": {
          "description": "Number of CPU cores in the VirtualMachine. Must be non-negative.",
          "format": "int32",
          "type": "integer"
        },
        "createTime": {
          "description": "VM creation timestamp.",
          "format": "google-datetime",
          "type": "string"
        },
        "guestOs": {
          "$ref": "GuestOsDetails",
          "description": "Guest OS information."
        },
        "memoryMb": {
          "description": "The amount of memory in the VirtualMachine. Must be non-negative.",
          "format": "int32",
          "type": "integer"
        },
        "osFamily": {
          "description": "What family the OS belong to, if known.",
          "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"
        },
        "osName": {
          "description": "The name of the operating system running on the VirtualMachine.",
          "type": "string"
        },
        "osVersion": {
          "description": "The version of the operating system running on the virtual machine.",
          "type": "string"
        },
        "platform": {
          "$ref": "PlatformDetails",
          "description": "Platform information."
        },
        "powerState": {
          "description": "Power state of VM (poweredOn or poweredOff).",
          "type": "string"
        },
        "vcenterFolder": {
          "description": "Folder name in vCenter where asset resides.",
          "type": "string"
        },
        "vcenterUrl": {
          "description": "vCenter URL used in collection.",
          "type": "string"
        },
        "vcenterVmId": {
          "description": "vCenter VM ID.",
          "type": "string"
        },
        "vmArchitecture": {
          "$ref": "VirtualMachineArchitectureDetails",
          "description": "VM architecture details (vendor, cpu arch)."
        },
        "vmDisks": {
          "$ref": "VirtualMachineDiskDetails",
          "description": "VM disk details."
        },
        "vmName": {
          "description": "Virtual Machine display name.",
          "type": "string"
        },
        "vmNetwork": {
          "$ref": "VirtualMachineNetworkDetails",
          "description": "VM network details."
        },
        "vmUuid": {
          "description": "Virtual Machine unique identifier.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "VirtualMachineDiskDetails": {
      "description": "Details of VM disks.",
      "id": "VirtualMachineDiskDetails",
      "properties": {
        "disks": {
          "$ref": "DiskEntryList",
          "description": "List of disks."
        },
        "hddTotalCapacityBytes": {
          "description": "Disk total Capacity.",
          "format": "int64",
          "type": "string"
        },
        "hddTotalFreeBytes": {
          "description": "Total Disk Free Space.",
          "format": "int64",
          "type": "string"
        },
        "lsblkJson": {
          "description": "Raw lsblk output in json.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "VirtualMachineNetworkDetails": {
      "description": "Details of network adapters and settings.",
      "id": "VirtualMachineNetworkDetails",
      "properties": {
        "defaultGw": {
          "description": "Default gateway address.",
          "type": "string"
        },
        "networkAdapters": {
          "$ref": "NetworkAdapterList",
          "description": "List of network adapters."
        },
        "primaryIpAddress": {
          "description": "IP address of the machine.",
          "type": "string"
        },
        "primaryMacAddress": {
          "description": "MAC address of the machine. This property is used to uniqly identify the machine.",
          "type": "string"
        },
        "publicIpAddress": {
          "description": "Public IP address of the machine.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "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.",
      "id": "VirtualMachinePreferences",
      "properties": {
        "commitmentPlan": {
          "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",
            "COMMITMENT_PLAN_NONE",
            "COMMITMENT_PLAN_ONE_YEAR",
            "COMMITMENT_PLAN_THREE_YEARS"
          ],
          "enumDescriptions": [
            "Unspecified commitment plan.",
            "No commitment plan.",
            "1 year commitment.",
            "3 years commitment."
          ],
          "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."
        },
        "sizingOptimizationStrategy": {
          "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.",
          "enum": [
            "SIZING_OPTIMIZATION_STRATEGY_UNSPECIFIED",
            "SIZING_OPTIMIZATION_STRATEGY_SAME_AS_SOURCE",
            "SIZING_OPTIMIZATION_STRATEGY_MODERATE",
            "SIZING_OPTIMIZATION_STRATEGY_AGGRESSIVE"
          ],
          "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."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "VmwareDiskConfig": {
      "description": "VMware disk config details.",
      "id": "VmwareDiskConfig",
      "properties": {
        "backingType": {
          "description": "VMDK backing type.",
          "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"
          ],
          "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."
          ],
          "type": "string"
        },
        "rdmCompatibilityMode": {
          "description": "RDM compatibility mode.",
          "type": "string"
        },
        "shared": {
          "description": "Is VMDK shared with other VMs.",
          "type": "boolean"
        },
        "vmdkDiskMode": {
          "description": "VMDK disk mode.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "VmwareEngineMigrationTarget": {
      "description": "VMWare engine migration target.",
      "id": "VmwareEngineMigrationTarget",
      "properties": {},
      "type": "object"
    },
    "VmwarePlatformDetails": {
      "description": "VMware specific details.",
      "id": "VmwarePlatformDetails",
      "properties": {
        "esxVersion": {
          "description": "ESX version.",
          "type": "string"
        },
        "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"
        },
        "vcenterVersion": {
          "description": "vCenter version.",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "servicePath": "",
  "title": "Migration Center API",
  "version": "v1alpha1",
  "version_module": true
}