{
  "ownerName": "Google",
  "baseUrl": "https://migrationcenter.googleapis.com/",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "discoveryVersion": "v1",
  "rootUrl": "https://migrationcenter.googleapis.com/",
  "fullyEncodeReservedExpansion": true,
  "description": "A unified platform that helps you accelerate your end-to-end cloud journey from your current on-premises or cloud environments to Google Cloud.",
  "id": "migrationcenter:v1alpha1",
  "name": "migrationcenter",
  "schemas": {
    "ReportSummaryChartDataDataPoint": {
      "type": "object",
      "description": "Describes a single data point in the Chart.",
      "properties": {
        "value": {
          "description": "The Y-axis value for this data point.",
          "format": "double",
          "type": "number"
        },
        "label": {
          "type": "string",
          "description": "The X-axis label for this data point."
        }
      },
      "id": "ReportSummaryChartDataDataPoint"
    },
    "AssetFrame": {
      "id": "AssetFrame",
      "description": "Contains data reported from an inventory source on an asset.",
      "properties": {
        "machineDetails": {
          "description": "Asset information specific for virtual and physical machines.",
          "$ref": "MachineDetails"
        },
        "awsGlueJobDetails": {
          "description": "Optional. Asset information specific for AwsGlueJobDetails",
          "$ref": "AwsGlueJobDetails"
        },
        "traceToken": {
          "description": "Optional. Trace token is optionally provided to assist with debugging and traceability.",
          "type": "string"
        },
        "awsEcrRepositoryDetails": {
          "description": "Asset information specific for AwsEcrRepositoryDetails",
          "$ref": "AwsEcrRepositoryDetails"
        },
        "collectionType": {
          "description": "Optional. Frame collection type, if not specified the collection type will be based on the source type of the source the frame was reported on.",
          "enumDescriptions": [
            "Unspecified",
            "Manually uploaded file (e.g. CSV)",
            "Guest-level info",
            "Inventory-level scan",
            "Third-party owned sources.",
            "Discovery clients"
          ],
          "type": "string",
          "enum": [
            "SOURCE_TYPE_UNKNOWN",
            "SOURCE_TYPE_UPLOAD",
            "SOURCE_TYPE_GUEST_OS_SCAN",
            "SOURCE_TYPE_INVENTORY_SCAN",
            "SOURCE_TYPE_CUSTOM",
            "SOURCE_TYPE_DISCOVERY_CLIENT"
          ]
        },
        "hostingProviderDetails": {
          "description": "Optional. Details about the hosting provider of the asset.",
          "$ref": "HostingProviderDetails"
        },
        "databaseDetails": {
          "description": "Asset information specific for logical databases.",
          "$ref": "DatabaseDetails"
        },
        "labels": {
          "description": "Labels as key value pairs.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "performanceSamples": {
          "type": "array",
          "items": {
            "$ref": "PerformanceSample"
          },
          "description": "Asset performance data samples. Samples that are from more than 40 days ago or after tomorrow are ignored."
        },
        "awsEcsClusterDetails": {
          "description": "Asset information specific for AWS ECS clusters.",
          "$ref": "AwsEcsClusterDetails"
        },
        "awsEbsVolumeDetails": {
          "description": "Optional. Asset information specific for AWS EBS Volumes.",
          "$ref": "AwsEbsVolumeDetails"
        },
        "awsAppSyncGraphqlApiDetails": {
          "description": "Optional. Asset information specific for AWS AppSync GraphQL APIs.",
          "$ref": "AwsAppSyncGraphqlApiDetails"
        },
        "awsApplicationLoadBalancerDetails": {
          "description": "Optional. Asset information specific for AWS Application Load Balancers.",
          "$ref": "AwsApplicationLoadBalancerDetails"
        },
        "awsElasticNetworkInterfaceDetails": {
          "description": "Optional. Asset information specific for AWS Elastic Network Interfaces.",
          "$ref": "AwsElasticNetworkInterfaceDetails"
        },
        "virtualMachineDetails": {
          "description": "Asset information specific for virtual machines.",
          "$ref": "VirtualMachineDetails"
        },
        "awsLambdaFunctionDetails": {
          "description": "Asset information specific for AWS Lambda functions.",
          "$ref": "AwsLambdaFunctionDetails"
        },
        "awsApiGatewayRestApiDetails": {
          "description": "Optional. Asset information specific for AWS API Gateway REST APIs.",
          "$ref": "AwsApiGatewayRestApiDetails"
        },
        "awsSnsTopicDetails": {
          "description": "Optional. Asset information specific for AWS SNS Topics.",
          "$ref": "AwsSnsTopicDetails"
        },
        "awsDynamodbTableDetails": {
          "description": "Asset information specific for AWS DynamoDB tables.",
          "$ref": "AwsDynamoDBTableDetails"
        },
        "awsAutoscalingGroupDetails": {
          "description": "Optional. Asset information specific for AwsAutoscalingGroupDetails",
          "$ref": "AwsAutoscalingGroupDetails"
        },
        "awsKinesisStreamDetails": {
          "description": "Optional. Asset information specific for AwsKinesisStreamDetails",
          "$ref": "AwsKinesisStreamDetails"
        },
        "databaseDeploymentDetails": {
          "description": "Asset information specific for database deployments.",
          "$ref": "DatabaseDeploymentDetails"
        },
        "awsElasticacheClusterDetails": {
          "description": "Optional. Asset information specific for AWS ElastiCache Clusters.",
          "$ref": "AwsElastiCacheClusterDetails"
        },
        "awsVpcDetails": {
          "description": "Asset information specific for AWS VPCs.",
          "$ref": "AwsVpcDetails"
        },
        "awsS3BucketDetails": {
          "description": "Asset information specific for AWS S3 buckets.",
          "$ref": "AwsS3BucketDetails"
        },
        "awsCloudFrontDistributionDetails": {
          "description": "Asset information specific for AWS CloudFront distributions.",
          "$ref": "AwsCloudFrontDistributionDetails"
        },
        "awsElbLoadBalancerDetails": {
          "description": "Asset information specific for AWS Load Balancers.",
          "$ref": "AwsElbLoadBalancerDetails"
        },
        "awsAthenaWorkGroupDetails": {
          "description": "Optional. Asset information specific for AwsAthenaWorkGroupDetails",
          "$ref": "AwsAthenaWorkGroupDetails"
        },
        "awsEksClusterDetails": {
          "description": "Asset information specific for AWS EKS clusters.",
          "$ref": "AwsEksClusterDetails"
        },
        "awsEfsFileSystemDetails": {
          "description": "Asset information specific for AWS EFS file systems.",
          "$ref": "AwsEfsFileSystemDetails"
        },
        "awsRoute53HostedZoneDetails": {
          "description": "Asset information specific for AwsRoute53HostedZoneDetails",
          "$ref": "AwsRoute53HostedZoneDetails"
        },
        "reportTime": {
          "description": "The time the data was reported.",
          "format": "google-datetime",
          "type": "string"
        },
        "awsNatGatewayDetails": {
          "description": "Asset information specific for AwsNatGatewayDetails",
          "$ref": "AwsNatGatewayDetails"
        },
        "awsRedshiftDetails": {
          "description": "Asset information specific for AWS Redshift clusters.",
          "$ref": "AwsRedshiftDetails"
        },
        "awsElasticIpAddressDetails": {
          "description": "Optional. Asset information specific for AWS Elastic IP Addresses.",
          "$ref": "AwsElasticIpAddressDetails"
        },
        "awsBatchComputeEnvironmentDetails": {
          "description": "Optional. Asset information specific for AWS Batch Compute Environments.",
          "$ref": "AwsBatchComputeEnvironmentDetails"
        },
        "awsInternetGatewayDetails": {
          "description": "Optional. Asset information specific for AWS Internet Gateways.",
          "$ref": "AwsInternetGatewayDetails"
        },
        "structuredAttributes": {
          "type": "object",
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          },
          "description": "Optional. Generic structured asset attributes."
        },
        "awsFirehoseDetails": {
          "description": "Optional. Asset information specific for AwsFirehoseDetails",
          "$ref": "AwsFirehoseDetails"
        },
        "awsEmrClusterDetails": {
          "description": "Optional. Asset information specific for AwsEmrClusterDetails",
          "$ref": "AwsEmrClusterDetails"
        },
        "attributes": {
          "description": "Generic asset attributes.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "NfsExport": {
      "type": "object",
      "id": "NfsExport",
      "description": "NFS export.",
      "properties": {
        "exportDirectory": {
          "type": "string",
          "description": "The directory being exported."
        },
        "hosts": {
          "description": "The hosts or networks to which the export is being shared.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "RuntimeNetworkInfo": {
      "id": "RuntimeNetworkInfo",
      "description": "Runtime networking information.",
      "properties": {
        "netstat": {
          "description": "Netstat (raw, OS-agnostic).",
          "type": "string"
        },
        "netstatTime": {
          "description": "Netstat time collected.",
          "$ref": "DateTime"
        },
        "connections": {
          "description": "Network connections.",
          "$ref": "NetworkConnectionList"
        },
        "scanTime": {
          "type": "string",
          "description": "Time of the last network scan.",
          "format": "google-datetime"
        },
        "rawScanResult": {
          "description": "Raw network scan result. This field is intended for human inspection. The format of this field may be netstat output or any another raw output. The exact format may change without notice and should not be relied upon.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "VirtualMachinePreferencesNetworkCostParameters": {
      "description": "Parameters that affect network cost estimations.",
      "properties": {
        "estimatedEgressTrafficPercentage": {
          "description": "Optional. An estimated percentage of priced outbound traffic (egress traffic) from the measured outbound traffic. Must be in the interval [0, 100].",
          "format": "int32",
          "type": "integer"
        }
      },
      "id": "VirtualMachinePreferencesNetworkCostParameters",
      "type": "object"
    },
    "AwsRoute53HostedZoneDetails": {
      "type": "object",
      "description": "Details of an AWS Route 53 Hosted Zone.",
      "properties": {},
      "id": "AwsRoute53HostedZoneDetails"
    },
    "ReportSummaryDatabaseFinding": {
      "description": "DatabaseFinding contains an aggregate costs and shapes for a single database type.",
      "properties": {
        "allocatedAssetCount": {
          "type": "string",
          "description": "Output only. Number of database assets which were successfully assigned in this finding.",
          "readOnly": true,
          "format": "int64"
        },
        "totalAssets": {
          "description": "Output only. Number of database assets in this finding.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      },
      "id": "ReportSummaryDatabaseFinding",
      "type": "object"
    },
    "PhysicalPlatformDetails": {
      "type": "object",
      "description": "Platform specific details for Physical Machines.",
      "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"
        },
        "hyperthreading": {
          "enum": [
            "HYPERTHREADING_STATUS_UNSPECIFIED",
            "HYPERTHREADING_STATUS_DISABLED",
            "HYPERTHREADING_STATUS_ENABLED"
          ],
          "type": "string",
          "description": "Whether the machine is hyperthreaded.",
          "enumDescriptions": [
            "Simultaneous Multithreading status unknown.",
            "Simultaneous Multithreading is disabled or unavailable.",
            "Simultaneous Multithreading is enabled."
          ]
        }
      },
      "id": "PhysicalPlatformDetails"
    },
    "DatabaseDeploymentTopology": {
      "id": "DatabaseDeploymentTopology",
      "description": "Details of database deployment's topology.",
      "properties": {
        "memoryBytes": {
          "type": "string",
          "description": "Optional. Total memory in bytes.",
          "format": "int64"
        },
        "physicalCoreLimit": {
          "type": "integer",
          "description": "Optional. Number of total physical cores limited by db deployment.",
          "format": "int32"
        },
        "instances": {
          "type": "array",
          "items": {
            "$ref": "DatabaseInstance"
          },
          "description": "Optional. List of database instances."
        },
        "physicalCoreCount": {
          "type": "integer",
          "description": "Optional. Number of total physical cores.",
          "format": "int32"
        },
        "diskUsedBytes": {
          "description": "Optional. Disk used in bytes.",
          "format": "int64",
          "type": "string"
        },
        "coreLimit": {
          "type": "integer",
          "description": "Optional. Number of total logical cores limited by db deployment.",
          "format": "int32"
        },
        "coreCount": {
          "description": "Optional. Number of total logical cores.",
          "format": "int32",
          "type": "integer"
        },
        "memoryLimitBytes": {
          "description": "Optional. Total memory in bytes limited by db deployment.",
          "format": "int64",
          "type": "string"
        },
        "diskAllocatedBytes": {
          "type": "string",
          "description": "Optional. Disk allocated in bytes.",
          "format": "int64"
        }
      },
      "type": "object"
    },
    "DetectedSoftware": {
      "type": "object",
      "id": "DetectedSoftware",
      "description": "Information about software detected on an asset.",
      "properties": {
        "softwareFamily": {
          "description": "Output only. Software family of the detected software, e.g. Database, SAP family.",
          "readOnly": true,
          "type": "string"
        },
        "softwareName": {
          "type": "string",
          "description": "Output only. Software's name.",
          "readOnly": true
        }
      }
    },
    "AwsSnsTopicDetails": {
      "description": "Asset information specific for AWS SNS Topics.",
      "properties": {},
      "id": "AwsSnsTopicDetails",
      "type": "object"
    },
    "ReportConfig": {
      "description": "The groups and associated preference sets on which we can generate reports.",
      "properties": {
        "createTime": {
          "description": "Output only. The timestamp when the resource was created.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "name": {
          "description": "Output only. Name of resource.",
          "readOnly": true,
          "type": "string"
        },
        "groupPreferencesetAssignments": {
          "items": {
            "$ref": "ReportConfigGroupPreferenceSetAssignment"
          },
          "type": "array",
          "description": "Required. Collection of combinations of groups and preference sets."
        },
        "description": {
          "type": "string",
          "description": "Free-text description."
        },
        "updateTime": {
          "type": "string",
          "description": "Output only. The timestamp when the resource was last updated.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "displayName": {
          "type": "string",
          "description": "User-friendly display name. Maximum length is 63 characters."
        }
      },
      "id": "ReportConfig",
      "type": "object"
    },
    "DailyResourceUsageAggregationDisk": {
      "type": "object",
      "description": "Statistical aggregation of disk usage.",
      "properties": {
        "iops": {
          "description": "Disk I/O operations per second.",
          "$ref": "DailyResourceUsageAggregationStats"
        },
        "readIops": {
          "description": "Disk read I/O operations per second.",
          "$ref": "DailyResourceUsageAggregationStats"
        },
        "writeIops": {
          "description": "Disk write I/O operations per second.",
          "$ref": "DailyResourceUsageAggregationStats"
        }
      },
      "id": "DailyResourceUsageAggregationDisk"
    },
    "AggregationHistogram": {
      "description": "Histogram of bucketed assets counts by field value.",
      "properties": {
        "lowerBounds": {
          "type": "array",
          "items": {
            "type": "number",
            "format": "double"
          },
          "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."
        }
      },
      "id": "AggregationHistogram",
      "type": "object"
    },
    "TimeZone": {
      "description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).",
      "properties": {
        "version": {
          "type": "string",
          "description": "Optional. IANA Time Zone Database version number. For example \"2019a\"."
        },
        "id": {
          "type": "string",
          "description": "IANA Time Zone Database time zone. For example \"America/New_York\"."
        }
      },
      "id": "TimeZone",
      "type": "object"
    },
    "MySqlProperty": {
      "id": "MySqlProperty",
      "description": "MySql property.",
      "properties": {
        "enabled": {
          "description": "Required. The property is enabled.",
          "type": "boolean"
        },
        "numericValue": {
          "type": "string",
          "description": "Required. The property numeric value.",
          "format": "int64"
        },
        "property": {
          "description": "Required. The property name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "VmwarePlatformDetails": {
      "type": "object",
      "description": "VMware specific details.",
      "properties": {
        "vcenterVmId": {
          "type": "string",
          "description": "vCenter VM ID."
        },
        "vcenterFolder": {
          "type": "string",
          "description": "Folder name in vCenter where asset resides."
        },
        "vcenterUri": {
          "type": "string",
          "description": "vCenter URI used in collection."
        },
        "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": {
          "type": "string",
          "description": "vCenter version."
        },
        "esxVersion": {
          "description": "ESX version.",
          "type": "string"
        },
        "esxHyperthreading": {
          "enum": [
            "HYPERTHREADING_STATUS_UNSPECIFIED",
            "HYPERTHREADING_STATUS_DISABLED",
            "HYPERTHREADING_STATUS_ENABLED"
          ],
          "type": "string",
          "description": "Whether the ESX is hyperthreaded.",
          "enumDescriptions": [
            "Simultaneous Multithreading status unknown.",
            "Simultaneous Multithreading is disabled or unavailable.",
            "Simultaneous Multithreading is enabled."
          ]
        }
      },
      "id": "VmwarePlatformDetails"
    },
    "DiscoveryClient": {
      "description": "Represents an installed Migration Center Discovery Client instance.",
      "properties": {
        "signalsEndpoint": {
          "type": "string",
          "description": "Output only. This field is intended for internal use.",
          "readOnly": true
        },
        "recommendedVersions": {
          "description": "Output only. The recommended versions of the discovery client.",
          "readOnly": true,
          "items": {
            "$ref": "DiscoveryClientDiscoveryClientRecommendedVersion"
          },
          "type": "array"
        },
        "errors": {
          "description": "Output only. Errors affecting client functionality.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "Status"
          }
        },
        "heartbeatTime": {
          "type": "string",
          "description": "Output only. Last heartbeat time. Healthy clients are expected to send heartbeats regularly (normally every few minutes).",
          "readOnly": true,
          "format": "google-datetime"
        },
        "createTime": {
          "type": "string",
          "description": "Output only. Time when the discovery client was first created.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "serviceAccount": {
          "type": "string",
          "description": "Required. Service account used by the discovery client for various operation."
        },
        "displayName": {
          "description": "Optional. Free text display name. Maximum length is 63 characters.",
          "type": "string"
        },
        "labels": {
          "description": "Optional. Labels as key value pairs.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "version": {
          "type": "string",
          "description": "Output only. Client version, as reported in recent heartbeat.",
          "readOnly": true
        },
        "source": {
          "type": "string",
          "description": "Required. Full name of the source object associated with this discovery client."
        },
        "expireTime": {
          "type": "string",
          "description": "Optional. Client expiration time in UTC. If specified, the backend will not accept new frames after this time.",
          "format": "google-datetime"
        },
        "description": {
          "description": "Optional. Free text description. Maximum length is 1000 characters.",
          "type": "string"
        },
        "state": {
          "description": "Output only. Current state of the discovery client.",
          "readOnly": true,
          "enumDescriptions": [
            "Client state is unspecified.",
            "Client is active.",
            "Client is offline.",
            "Client is in a degraded state. See the `errors` field for details.",
            "Client has expired. See the expire_time field for the expire time."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "ACTIVE",
            "OFFLINE",
            "DEGRADED",
            "EXPIRED"
          ],
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. Time when the discovery client was last updated. This value is not updated by heartbeats, to view the last heartbeat time please refer to the `heartbeat_time` field.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "name": {
          "description": "Output only. Identifier. Full name of this discovery client.",
          "readOnly": true,
          "type": "string"
        },
        "ttl": {
          "description": "Optional. Input only. Client time-to-live. If specified, the backend will not accept new frames after this time. This field is input only. The derived expiration time is provided as output through the `expire_time` field.",
          "format": "google-duration",
          "type": "string"
        }
      },
      "id": "DiscoveryClient",
      "type": "object"
    },
    "PostgreSqlProperty": {
      "id": "PostgreSqlProperty",
      "description": "PostgreSql property.",
      "properties": {
        "enabled": {
          "description": "Required. The property is enabled.",
          "type": "boolean"
        },
        "property": {
          "description": "Required. The property name.",
          "type": "string"
        },
        "numericValue": {
          "description": "Required. The property numeric value.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AwsInternetGatewayDetails": {
      "type": "object",
      "id": "AwsInternetGatewayDetails",
      "description": "Asset information specific for AWS Internet Gateways.",
      "properties": {}
    },
    "DatabasePreferencesCloudSqlPostgreSql": {
      "type": "object",
      "id": "DatabasePreferencesCloudSqlPostgreSql",
      "description": "Preferences for PostgreSQL on Cloud SQL.",
      "properties": {
        "common": {
          "description": "Optional. Preferences to Cloud SQL databases.",
          "$ref": "DatabasePreferencesCloudSqlCommon"
        }
      }
    },
    "ComputeStorageDescriptor": {
      "type": "object",
      "description": "Compute Engine storage option descriptor.",
      "properties": {
        "type": {
          "description": "Output only. Disk type backing the storage.",
          "readOnly": true,
          "enumDescriptions": [
            "Unspecified. Fallback to default value based on context.",
            "Standard HDD Persistent Disk.",
            "Balanced Persistent Disk.",
            "SSD Persistent Disk."
          ],
          "enum": [
            "PERSISTENT_DISK_TYPE_UNSPECIFIED",
            "PERSISTENT_DISK_TYPE_STANDARD",
            "PERSISTENT_DISK_TYPE_BALANCED",
            "PERSISTENT_DISK_TYPE_SSD"
          ],
          "type": "string"
        },
        "sizeGb": {
          "description": "Disk size in GiB.",
          "format": "int32",
          "type": "integer"
        }
      },
      "id": "ComputeStorageDescriptor"
    },
    "SignedUri": {
      "id": "SignedUri",
      "description": "Contains a signed URI.",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Output only. Download URI for the file.",
          "readOnly": true
        },
        "file": {
          "description": "Output only. Name of the file the Signed URI references.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "Report": {
      "type": "object",
      "description": "Report represents a point-in-time rendering of the ReportConfig results.",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "User-friendly display name. Maximum length is 63 characters."
        },
        "summary": {
          "description": "Output only. Summary view of the Report.",
          "readOnly": true,
          "$ref": "ReportSummary"
        },
        "type": {
          "type": "string",
          "enum": [
            "TYPE_UNSPECIFIED",
            "TOTAL_COST_OF_OWNERSHIP"
          ],
          "description": "Report type.",
          "enumDescriptions": [
            "Default report type.",
            "Total cost of ownership report type."
          ]
        },
        "createTime": {
          "type": "string",
          "description": "Output only. Creation timestamp.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "name": {
          "description": "Output only. Name of resource.",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "description": "Free-text description.",
          "type": "string"
        },
        "state": {
          "enum": [
            "STATE_UNSPECIFIED",
            "PENDING",
            "SUCCEEDED",
            "FAILED"
          ],
          "type": "string",
          "description": "Report creation state.",
          "enumDescriptions": [
            "Default Report creation state.",
            "Creating Report.",
            "Successfully created Report.",
            "Failed to create Report."
          ]
        },
        "updateTime": {
          "type": "string",
          "description": "Output only. Last update timestamp.",
          "readOnly": true,
          "format": "google-datetime"
        }
      },
      "id": "Report"
    },
    "AssetsExportJob": {
      "type": "object",
      "description": "Assets export job message.",
      "properties": {
        "signedUriDestination": {
          "description": "Export to Cloud Storage files downloadable using signed URIs.",
          "$ref": "SignedUriDestination"
        },
        "showHidden": {
          "type": "boolean",
          "description": "Optional. When this value is set to 'true' the response will include all assets, including those that are hidden."
        },
        "labels": {
          "description": "Optional. Labels as key value pairs. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be \u003c= 128 bytes.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "inventory": {
          "description": "Export asset inventory details.",
          "$ref": "AssetsExportJobInventory"
        },
        "condition": {
          "description": "Optional. Conditions for selecting assets to export.",
          "$ref": "AssetsExportJobExportCondition"
        },
        "createTime": {
          "description": "Output only. Resource creation time.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "name": {
          "description": "Output only. Identifier. Resource name.",
          "readOnly": true,
          "type": "string"
        },
        "networkDependencies": {
          "description": "Export data regarding asset network dependencies.",
          "$ref": "AssetsExportJobNetworkDependencies"
        },
        "updateTime": {
          "description": "Output only. Resource update time.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "recentExecutions": {
          "description": "Output only. Recent non expired executions of the job.",
          "readOnly": true,
          "items": {
            "$ref": "AssetsExportJobExecution"
          },
          "type": "array"
        },
        "performanceData": {
          "description": "Export asset with performance data.",
          "$ref": "AssetsExportJobPerformanceData"
        }
      },
      "id": "AssetsExportJob"
    },
    "AwsKinesisStreamDetails": {
      "description": "Contains details for an AWS Kinesis Stream asset.",
      "properties": {},
      "id": "AwsKinesisStreamDetails",
      "type": "object"
    },
    "RunReportExportJobResponse": {
      "type": "object",
      "description": "Response message for running a report export job.",
      "properties": {
        "reportExportExecution": {
          "description": "Output only. Execution status of the export operation.",
          "readOnly": true,
          "$ref": "ReportExportExecution"
        }
      },
      "id": "RunReportExportJobResponse"
    },
    "DailyResourceUsageAggregation": {
      "id": "DailyResourceUsageAggregation",
      "description": "Usage data aggregation for a single day.",
      "properties": {
        "network": {
          "description": "Network usage.",
          "$ref": "DailyResourceUsageAggregationNetwork"
        },
        "date": {
          "description": "Aggregation date. Day boundaries are at midnight UTC.",
          "$ref": "Date"
        },
        "disk": {
          "description": "Disk usage.",
          "$ref": "DailyResourceUsageAggregationDisk"
        },
        "memory": {
          "description": "Memory usage.",
          "$ref": "DailyResourceUsageAggregationMemory"
        },
        "cpu": {
          "description": "CPU usage.",
          "$ref": "DailyResourceUsageAggregationCPU"
        }
      },
      "type": "object"
    },
    "PostgreSqlDatabaseDeployment": {
      "type": "object",
      "id": "PostgreSqlDatabaseDeployment",
      "description": "Specific details for a PostgreSQL database deployment.",
      "properties": {
        "properties": {
          "description": "Optional. List of PostgreSql properties.",
          "items": {
            "$ref": "PostgreSqlProperty"
          },
          "type": "array"
        },
        "settings": {
          "description": "Optional. List of PostgreSql settings.",
          "type": "array",
          "items": {
            "$ref": "PostgreSqlSetting"
          }
        }
      }
    },
    "NetworkConnection": {
      "id": "NetworkConnection",
      "properties": {
        "remotePort": {
          "description": "Remote port.",
          "format": "int32",
          "type": "integer"
        },
        "protocol": {
          "description": "Connection protocol (e.g. TCP/UDP).",
          "type": "string"
        },
        "state": {
          "type": "string",
          "description": "Connection state (e.g. CONNECTED)."
        },
        "processName": {
          "description": "Process or service name.",
          "type": "string"
        },
        "remoteIpAddress": {
          "description": "Remote IP address.",
          "type": "string"
        },
        "pid": {
          "description": "Process ID.",
          "format": "int64",
          "type": "string"
        },
        "localIpAddress": {
          "type": "string",
          "description": "Local IP address."
        },
        "localPort": {
          "description": "Local port.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "AggregationResultHistogram": {
      "type": "object",
      "id": "AggregationResultHistogram",
      "description": "The result of a bucketed histogram aggregation.",
      "properties": {
        "buckets": {
          "type": "array",
          "items": {
            "$ref": "AggregationResultHistogramBucket"
          },
          "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."
        }
      }
    },
    "AddAssetsToGroupRequest": {
      "type": "object",
      "id": "AddAssetsToGroupRequest",
      "description": "A request to add assets to a group.",
      "properties": {
        "requestId": {
          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
          "type": "string"
        },
        "assets": {
          "description": "Required. List of assets to be added. The maximum number of assets that can be added in a single request is 2000.",
          "$ref": "AssetList"
        },
        "allowExisting": {
          "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"
        }
      }
    },
    "AwsBatchComputeEnvironmentDetails": {
      "id": "AwsBatchComputeEnvironmentDetails",
      "description": "Asset information specific for AWS Batch Compute Environments.",
      "properties": {},
      "type": "object"
    },
    "AssetsExportJobExportCondition": {
      "type": "object",
      "description": "Conditions for selecting assets to export.",
      "properties": {
        "filter": {
          "description": "Optional. Assets filter, supports the same syntax as asset listing.",
          "type": "string"
        }
      },
      "id": "AssetsExportJobExportCondition"
    },
    "DatabaseSchema": {
      "id": "DatabaseSchema",
      "description": "Details of a database schema.",
      "properties": {
        "schemaName": {
          "description": "The name of the schema.",
          "type": "string"
        },
        "tablesSizeBytes": {
          "type": "string",
          "description": "The total size of tables in bytes.",
          "format": "int64"
        },
        "postgresql": {
          "description": "Details of a PostgreSql schema.",
          "$ref": "PostgreSqlSchemaDetails"
        },
        "objects": {
          "description": "List of details of objects by category.",
          "type": "array",
          "items": {
            "$ref": "DatabaseObjects"
          }
        },
        "sqlServer": {
          "description": "Details of a SqlServer schema.",
          "$ref": "SqlServerSchemaDetails"
        },
        "mysql": {
          "description": "Details of a Mysql schema.",
          "$ref": "MySqlSchemaDetails"
        }
      },
      "type": "object"
    },
    "AwsS3BucketDetailsObjectsMetadataTotalObjects": {
      "description": "Information about the total number of objects in the bucket.",
      "properties": {
        "value": {
          "description": "Optional. The total number of objects in the bucket.",
          "format": "int32",
          "type": "integer"
        }
      },
      "id": "AwsS3BucketDetailsObjectsMetadataTotalObjects",
      "type": "object"
    },
    "AwsEc2PlatformDetails": {
      "id": "AwsEc2PlatformDetails",
      "description": "AWS EC2 specific details.",
      "properties": {
        "machineTypeLabel": {
          "type": "string",
          "description": "AWS platform's machine type label."
        },
        "location": {
          "description": "The location of the machine in the AWS format.",
          "type": "string"
        },
        "hyperthreading": {
          "type": "string",
          "enum": [
            "HYPERTHREADING_STATUS_UNSPECIFIED",
            "HYPERTHREADING_STATUS_DISABLED",
            "HYPERTHREADING_STATUS_ENABLED"
          ],
          "description": "Optional. Whether the machine is hyperthreaded.",
          "enumDescriptions": [
            "Simultaneous Multithreading status unknown.",
            "Simultaneous Multithreading is disabled or unavailable.",
            "Simultaneous Multithreading is enabled."
          ]
        }
      },
      "type": "object"
    },
    "SqlServerServerFlag": {
      "type": "object",
      "description": "SQL Server server flag details.",
      "properties": {
        "serverFlagName": {
          "description": "Required. The server flag name.",
          "type": "string"
        },
        "value": {
          "description": "Required. The server flag value set by the user.",
          "type": "string"
        },
        "valueInUse": {
          "description": "Required. The server flag actual value. If `value_in_use` is different from `value` it means that either the configuration change was not applied or it is an expected behavior. See SQL Server documentation for more details.",
          "type": "string"
        }
      },
      "id": "SqlServerServerFlag"
    },
    "HostsEntryList": {
      "type": "object",
      "description": "Hosts content.",
      "properties": {
        "entries": {
          "description": "Output only. Hosts entries.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "HostsEntry"
          }
        }
      },
      "id": "HostsEntryList"
    },
    "GuestRuntimeDetails": {
      "id": "GuestRuntimeDetails",
      "description": "Guest OS runtime information.",
      "properties": {
        "networkInfo": {
          "description": "Runtime network information (connections, ports).",
          "$ref": "RuntimeNetworkInfo"
        },
        "openFileList": {
          "description": "Open files information.",
          "$ref": "OpenFileList"
        },
        "lastUptime": {
          "description": "Date since last booted (last uptime date).",
          "$ref": "Date"
        },
        "machineName": {
          "description": "Machine name.",
          "type": "string"
        },
        "services": {
          "description": "Running background services.",
          "$ref": "RunningServiceList"
        },
        "domain": {
          "description": "Domain, e.g. c.stratozone-development.internal.",
          "type": "string"
        },
        "installedApps": {
          "description": "Installed applications information.",
          "$ref": "GuestInstalledApplicationList"
        },
        "lastBootTime": {
          "description": "Last time the OS was booted.",
          "format": "google-datetime",
          "type": "string"
        },
        "processes": {
          "description": "Running processes.",
          "$ref": "RunningProcessList"
        }
      },
      "type": "object"
    },
    "AwsRds": {
      "type": "object",
      "description": "Specific details for an AWS RDS database deployment.",
      "properties": {},
      "id": "AwsRds"
    },
    "DiscoveryClientDiscoveryClientRecommendedVersion": {
      "id": "DiscoveryClientDiscoveryClientRecommendedVersion",
      "description": "Discovery client recommended version.",
      "properties": {
        "version": {
          "type": "string",
          "description": "Output only. The version of the discovery client.",
          "readOnly": true
        },
        "uri": {
          "description": "Output only. The URI of the discovery client version.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListOperationsResponse": {
      "id": "ListOperationsResponse",
      "description": "The response message for Operations.ListOperations.",
      "properties": {
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Unordered list. Unreachable resources. Populated when the request sets `ListOperationsRequest.return_partial_success` and reads across collections. For example, when attempting to list all resources across all supported locations."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "Operation"
          },
          "description": "A list of operations that matches the specified filter in the request."
        }
      },
      "type": "object"
    },
    "RemoveAssetsFromGroupRequest": {
      "id": "RemoveAssetsFromGroupRequest",
      "description": "A request to remove assets from a group.",
      "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": {
          "description": "Required. List of assets to be removed. The maximum number of assets that can be removed in a single request is 1000.",
          "$ref": "AssetList"
        },
        "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"
    },
    "MachinePreferences": {
      "description": "The type of machines to consider when calculating virtual machine migration insights and recommendations for Compute Engine. Not all machine types are available in all zones and regions.",
      "properties": {
        "allowedMachineSeries": {
          "items": {
            "$ref": "MachineSeries"
          },
          "type": "array",
          "description": "Compute Engine machine series to consider for insights and recommendations. If empty, no restriction is applied on the machine series."
        }
      },
      "id": "MachinePreferences",
      "type": "object"
    },
    "MySqlVariable": {
      "type": "object",
      "description": "MySql variable.",
      "properties": {
        "value": {
          "type": "string",
          "description": "Required. The variable value."
        },
        "variable": {
          "type": "string",
          "description": "Required. The variable name."
        },
        "category": {
          "type": "string",
          "description": "Required. The variable category."
        }
      },
      "id": "MySqlVariable"
    },
    "RunningProcessList": {
      "id": "RunningProcessList",
      "description": "List of running guest OS processes.",
      "properties": {
        "processes": {
          "items": {
            "$ref": "RunningProcess"
          },
          "type": "array",
          "description": "Running process entries."
        },
        "entries": {
          "items": {
            "$ref": "RunningProcess"
          },
          "type": "array",
          "description": "Running process entries."
        }
      },
      "type": "object"
    },
    "AssetPerformanceData": {
      "description": "Performance data for an asset.",
      "properties": {
        "dailyResourceUsageAggregations": {
          "items": {
            "$ref": "DailyResourceUsageAggregation"
          },
          "type": "array",
          "description": "Daily resource usage aggregations. Contains all of the data available for an asset, up to the last 420 days. Aggregations are sorted from oldest to most recent."
        }
      },
      "id": "AssetPerformanceData",
      "type": "object"
    },
    "CloudDatabaseMigrationTarget": {
      "type": "object",
      "id": "CloudDatabaseMigrationTarget",
      "description": "Cloud database migration target.",
      "properties": {
        "cloudSqlForMysqlShape": {
          "description": "Cloud SQL for MySQL database shape.",
          "$ref": "CloudSqlForMySqlShape"
        },
        "cloudSqlShape": {
          "description": "Cloud SQL for SQL Server database shape.",
          "$ref": "CloudSqlForSqlServerShape"
        },
        "cloudSqlForPostgresqlShape": {
          "description": "Cloud SQL for PostgreSQL database shape.",
          "$ref": "CloudSqlForPostgreSqlShape"
        }
      }
    },
    "GoogleKubernetesEngineMigrationTarget": {
      "type": "object",
      "description": "GKE migration target.",
      "properties": {},
      "id": "GoogleKubernetesEngineMigrationTarget"
    },
    "AggregationFrequency": {
      "type": "object",
      "id": "AggregationFrequency",
      "description": "Frequency distribution of all field values.",
      "properties": {}
    },
    "GCSPayloadInfo": {
      "description": "A resource that represents a payload hosted on Google Cloud Storage.",
      "properties": {
        "format": {
          "type": "string",
          "enum": [
            "IMPORT_JOB_FORMAT_UNSPECIFIED",
            "IMPORT_JOB_FORMAT_CMDB",
            "IMPORT_JOB_FORMAT_RVTOOLS_XLSX",
            "IMPORT_JOB_FORMAT_RVTOOLS_CSV",
            "IMPORT_JOB_FORMAT_EXPORTED_AWS_CSV",
            "IMPORT_JOB_FORMAT_EXPORTED_AZURE_CSV",
            "IMPORT_JOB_FORMAT_MANUAL_CSV",
            "IMPORT_JOB_FORMAT_DATABASE_ZIP"
          ],
          "enumDescriptions": [
            "Default value.",
            "Configuration management DB format.",
            "RVTools format (XLSX).",
            "RVTools format (CSV).",
            "CSV format exported from AWS using the [AWS collection script](https://github.com/GoogleCloudPlatform/aws-to-stratozone-export).",
            "CSV format exported from Azure using the [Azure collection script](https://github.com/GoogleCloudPlatform/azure-to-stratozone-export).",
            "CSV format created manually. For more information, see [Manually create and upload data tables](https://cloud.google.com/migrate/stratozone/docs/import-data-portal).",
            "ZIP file with nested CSV files generated by a database collector."
          ],
          "enumDeprecated": [
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "description": "The import job format."
        },
        "path": {
          "description": "The payload path in Google Cloud Storage.",
          "type": "string"
        }
      },
      "id": "GCSPayloadInfo",
      "type": "object"
    },
    "ValidationReport": {
      "description": "A resource that aggregates errors across import job files.",
      "properties": {
        "jobErrors": {
          "description": "List of job level errors.",
          "items": {
            "$ref": "ImportError"
          },
          "type": "array"
        },
        "fileValidations": {
          "description": "List of errors found in files.",
          "type": "array",
          "items": {
            "$ref": "FileValidationReport"
          }
        }
      },
      "id": "ValidationReport",
      "type": "object"
    },
    "ListReportConfigsResponse": {
      "type": "object",
      "id": "ListReportConfigsResponse",
      "description": "Response message for listing report configs.",
      "properties": {
        "reportConfigs": {
          "items": {
            "$ref": "ReportConfig"
          },
          "type": "array",
          "description": "A list of report configs."
        },
        "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"
        }
      }
    },
    "ImportDataFile": {
      "description": "A resource that represents a payload file in an import job.",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "Optional. User-friendly display name. Maximum length is 256 characters."
        },
        "uploadFileInfo": {
          "description": "Information about a file that is uploaded to a storage service.",
          "$ref": "UploadFileInfo"
        },
        "format": {
          "description": "Required. The payload format.",
          "enumDeprecated": [
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "enumDescriptions": [
            "Default value.",
            "Configuration management DB format.",
            "RVTools format (XLSX).",
            "RVTools format (CSV).",
            "CSV format exported from AWS using the [AWS collection script](https://github.com/GoogleCloudPlatform/aws-to-stratozone-export).",
            "CSV format exported from Azure using the [Azure collection script](https://github.com/GoogleCloudPlatform/azure-to-stratozone-export).",
            "CSV format created manually. For more information, see [Manually create and upload data tables](https://cloud.google.com/migrate/stratozone/docs/import-data-portal).",
            "ZIP file with nested CSV files generated by a database collector."
          ],
          "enum": [
            "IMPORT_JOB_FORMAT_UNSPECIFIED",
            "IMPORT_JOB_FORMAT_CMDB",
            "IMPORT_JOB_FORMAT_RVTOOLS_XLSX",
            "IMPORT_JOB_FORMAT_RVTOOLS_CSV",
            "IMPORT_JOB_FORMAT_EXPORTED_AWS_CSV",
            "IMPORT_JOB_FORMAT_EXPORTED_AZURE_CSV",
            "IMPORT_JOB_FORMAT_MANUAL_CSV",
            "IMPORT_JOB_FORMAT_DATABASE_ZIP"
          ],
          "type": "string"
        },
        "state": {
          "enum": [
            "STATE_UNSPECIFIED",
            "CREATING",
            "ACTIVE"
          ],
          "type": "string",
          "readOnly": true,
          "enumDescriptions": [
            "Default value.",
            "The data file is being created.",
            "The data file completed initialization."
          ],
          "description": "Output only. The state of the import data file."
        },
        "createTime": {
          "type": "string",
          "description": "Output only. The timestamp when the file was created.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "name": {
          "description": "Output only. The name of the file.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "ImportDataFile",
      "type": "object"
    },
    "ListReportsResponse": {
      "type": "object",
      "id": "ListReportsResponse",
      "description": "Response message for listing Reports.",
      "properties": {
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "reports": {
          "description": "The list of Reports.",
          "type": "array",
          "items": {
            "$ref": "Report"
          }
        }
      }
    },
    "DatabaseObjects": {
      "type": "object",
      "id": "DatabaseObjects",
      "description": "Details of a group of database objects.",
      "properties": {
        "category": {
          "enum": [
            "CATEGORY_UNSPECIFIED",
            "TABLE",
            "INDEX",
            "CONSTRAINTS",
            "VIEWS",
            "SOURCE_CODE",
            "OTHER"
          ],
          "type": "string",
          "description": "The category of the objects.",
          "enumDescriptions": [
            "Unspecified type.",
            "Table.",
            "Index.",
            "Constraints.",
            "Views.",
            "Source code, e.g. procedures.",
            "Uncategorized objects."
          ]
        },
        "count": {
          "type": "string",
          "description": "The number of objects.",
          "format": "int64"
        }
      }
    },
    "ReportExportExecution": {
      "id": "ReportExportExecution",
      "description": "Execution status of report export operation.",
      "properties": {
        "result": {
          "description": "Output only. Result of the export execution.",
          "readOnly": true,
          "$ref": "ReportExportExecutionResult"
        },
        "startTime": {
          "description": "Output only. Execution start timestamp.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "executionId": {
          "description": "Output only. Globally unique identifier of the execution.",
          "readOnly": true,
          "type": "string"
        },
        "progressPercentage": {
          "description": "Output only. Represents the progress of the execution. It reaches 100 when the execution is successfully completed. When the execution finishes with a failure, the progress is set to 0.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "endTime": {
          "description": "Output only. Completion time of the export.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "expireTime": {
          "description": "Output only. Expiration time for the export and artifacts.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AggregationResultSum": {
      "description": "The result of a sum aggregation.",
      "properties": {
        "value": {
          "type": "number",
          "format": "double"
        }
      },
      "id": "AggregationResultSum",
      "type": "object"
    },
    "GuestInstalledApplication": {
      "id": "GuestInstalledApplication",
      "description": "Guest installed application information.",
      "properties": {
        "licenses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "License strings associated with the installed application."
        },
        "version": {
          "description": "Installed application version.",
          "type": "string"
        },
        "name": {
          "description": "Installed application name.",
          "type": "string"
        },
        "installTime": {
          "type": "string",
          "description": "The time when the application was installed.",
          "format": "google-datetime"
        },
        "applicationName": {
          "description": "Installed application name.",
          "type": "string"
        },
        "vendor": {
          "type": "string",
          "description": "Installed application vendor."
        },
        "time": {
          "description": "Date application was installed.",
          "type": "string"
        },
        "path": {
          "description": "Source path.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ReportAssetFramesResponse": {
      "description": "A response to a call to `ReportAssetFrame`.",
      "properties": {},
      "id": "ReportAssetFramesResponse",
      "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).",
      "properties": {
        "code": {
          "type": "integer",
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "format": "int32"
        },
        "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"
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "type": "array"
        }
      },
      "id": "Status",
      "type": "object"
    },
    "DiskPartitionDetails": {
      "type": "object",
      "id": "DiskPartitionDetails",
      "description": "Disk partition details.",
      "properties": {
        "partitions": {
          "description": "Optional. List of partitions.",
          "$ref": "DiskPartitionList"
        },
        "totalCapacityBytes": {
          "type": "string",
          "description": "Output only. Total capacity of all partitions.",
          "readOnly": true,
          "format": "int64"
        },
        "freeSpaceBytes": {
          "type": "string",
          "description": "Output only. Total free space of all partitions.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "AwsGlueJobDetails": {
      "description": "Contains details for an AWS Glue Job asset.",
      "properties": {},
      "id": "AwsGlueJobDetails",
      "type": "object"
    },
    "SqlServerFeature": {
      "type": "object",
      "description": "SQL Server feature details.",
      "properties": {
        "featureName": {
          "type": "string",
          "description": "Required. The feature name."
        },
        "enabled": {
          "type": "boolean",
          "description": "Required. Field enabled is set when a feature is used on the source deployment."
        }
      },
      "id": "SqlServerFeature"
    },
    "MysqlDatabaseDeployment": {
      "type": "object",
      "description": "Specific details for a Mysql database deployment.",
      "properties": {
        "plugins": {
          "description": "Optional. List of MySql plugins.",
          "type": "array",
          "items": {
            "$ref": "MySqlPlugin"
          }
        },
        "resourceGroupsCount": {
          "type": "integer",
          "description": "Optional. Number of resource groups.",
          "format": "int32"
        },
        "variables": {
          "type": "array",
          "items": {
            "$ref": "MySqlVariable"
          },
          "description": "Optional. List of MySql variables."
        },
        "properties": {
          "items": {
            "$ref": "MySqlProperty"
          },
          "type": "array",
          "description": "Optional. List of MySql properties."
        }
      },
      "id": "MysqlDatabaseDeployment"
    },
    "DatabasePreferences": {
      "type": "object",
      "description": "DatabasePreferences enables you to create sets of preferences for your migrated databases.",
      "properties": {
        "mssqlToCloudSqlForSqlServerPreferences": {
          "description": "Optional. Preferences for target SQL Server on Cloud SQL when migrating from source Microsoft SQL server.",
          "$ref": "DatabasePreferencesCloudSqlSqlServer"
        },
        "mysqlToCloudSqlForMysqlPreferences": {
          "description": "Optional. Preferences for target MySQL on Cloud SQL when migrating from source MySQL.",
          "$ref": "DatabasePreferencesCloudSqlMySql"
        },
        "postgresqlToCloudSqlForPostgresqlPreferences": {
          "description": "Optional. Preferences for target PostgreSQL on Cloud SQL when migrating from source PostgreSQL.",
          "$ref": "DatabasePreferencesCloudSqlPostgreSql"
        }
      },
      "id": "DatabasePreferences"
    },
    "ReportExportJob": {
      "type": "object",
      "description": "Report export job message.",
      "properties": {
        "name": {
          "description": "Output only. Identifier. Resource name.",
          "readOnly": true,
          "type": "string"
        },
        "signedUriDestination": {
          "description": "Export with a SignedUri.",
          "$ref": "SignedUriDestination"
        },
        "recentExecutions": {
          "description": "Output only. Recent not expired executions of the export report job.",
          "readOnly": true,
          "items": {
            "$ref": "ReportExportExecution"
          },
          "type": "array"
        }
      },
      "id": "ReportExportJob"
    },
    "MachineArchitectureDetails": {
      "id": "MachineArchitectureDetails",
      "description": "Details of the machine architecture.",
      "properties": {
        "bios": {
          "description": "BIOS Details.",
          "$ref": "BiosDetails"
        },
        "cpuArchitecture": {
          "description": "CPU architecture, e.g., \"x64-based PC\", \"x86_64\", \"i686\" etc.",
          "type": "string"
        },
        "cpuName": {
          "type": "string",
          "description": "CPU name, e.g., \"Intel Xeon E5-2690\", \"AMD EPYC 7571\" etc."
        },
        "cpuSocketCount": {
          "description": "Number of processor sockets allocated to the machine.",
          "format": "int32",
          "type": "integer"
        },
        "firmwareType": {
          "description": "Firmware type.",
          "enumDescriptions": [
            "Unspecified or unknown.",
            "BIOS firmware.",
            "EFI firmware."
          ],
          "type": "string",
          "enum": [
            "FIRMWARE_TYPE_UNSPECIFIED",
            "BIOS",
            "EFI"
          ]
        },
        "hyperthreading": {
          "type": "string",
          "enum": [
            "CPU_HYPER_THREADING_UNSPECIFIED",
            "DISABLED",
            "ENABLED"
          ],
          "description": "CPU hyper-threading support.",
          "enumDescriptions": [
            "Unspecified or unknown.",
            "Hyper-threading is disabled.",
            "Hyper-threading is enabled."
          ]
        },
        "cpuManufacturer": {
          "type": "string",
          "description": "Optional. CPU manufacturer, e.g., \"Intel\", \"AMD\"."
        },
        "vendor": {
          "description": "Hardware vendor.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AwsElasticIpAddressDetails": {
      "type": "object",
      "description": "Asset information specific for AWS Elastic IP Addresses.",
      "properties": {},
      "id": "AwsElasticIpAddressDetails"
    },
    "DatabaseInstanceNetwork": {
      "type": "object",
      "id": "DatabaseInstanceNetwork",
      "description": "Network details of a database instance.",
      "properties": {
        "primaryMacAddress": {
          "type": "string",
          "description": "Optional. The instance's primary MAC address."
        },
        "ipAddresses": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Optional. The instance's IP addresses."
        },
        "hostNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional. The instance's host names."
        }
      }
    },
    "ListGroupsResponse": {
      "id": "ListGroupsResponse",
      "description": "A response for listing groups.",
      "properties": {
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached."
        },
        "groups": {
          "type": "array",
          "items": {
            "$ref": "Group"
          },
          "description": "The list of Group"
        }
      },
      "type": "object"
    },
    "FstabEntryList": {
      "id": "FstabEntryList",
      "description": "Fstab content.",
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "FstabEntry"
          },
          "description": "Fstab entries."
        }
      },
      "type": "object"
    },
    "AggregationSum": {
      "type": "object",
      "id": "AggregationSum",
      "description": "Sum of field values.",
      "properties": {}
    },
    "AssetsExportJobExecution": {
      "description": "Execution status of assets export job.",
      "properties": {
        "executionId": {
          "description": "Output only. Globally unique identifier of the execution.",
          "readOnly": true,
          "type": "string"
        },
        "endTime": {
          "description": "Output only. Completion time of the export.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "expireTime": {
          "description": "Output only. Expiration time for the export and artifacts.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "requestedAssetCount": {
          "description": "Output only. Number of assets requested for export after resolving the requested filters.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "startTime": {
          "description": "Output only. Execution timestamp.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "result": {
          "description": "Output only. Result of the export execution.",
          "readOnly": true,
          "$ref": "AssetsExportJobExecutionResult"
        }
      },
      "id": "AssetsExportJobExecution",
      "type": "object"
    },
    "GuestOsDetails": {
      "description": "Information from Guest-level collections.",
      "properties": {
        "osName": {
          "type": "string",
          "description": "The name of the operating system."
        },
        "version": {
          "description": "The version of the operating system.",
          "type": "string"
        },
        "config": {
          "description": "OS and app configuration.",
          "$ref": "GuestConfigDetails"
        },
        "family": {
          "description": "What family the OS belong to, if known.",
          "enumDescriptions": [
            "",
            "Microsoft Windows Server and Desktop.",
            "Various Linux flavors.",
            "Non-Linux Unix flavors."
          ],
          "type": "string",
          "enum": [
            "OS_FAMILY_UNKNOWN",
            "OS_FAMILY_WINDOWS",
            "OS_FAMILY_LINUX",
            "OS_FAMILY_UNIX"
          ]
        },
        "runtime": {
          "description": "Runtime information.",
          "$ref": "GuestRuntimeDetails"
        }
      },
      "id": "GuestOsDetails",
      "type": "object"
    },
    "SqlServerTraceFlag": {
      "id": "SqlServerTraceFlag",
      "description": "SQL Server trace flag details.",
      "properties": {
        "traceFlagName": {
          "type": "string",
          "description": "Required. The trace flag name."
        },
        "scope": {
          "description": "Required. The trace flag scope.",
          "enumDescriptions": [
            "Unspecified.",
            "Off.",
            "Global.",
            "Session."
          ],
          "enum": [
            "SCOPE_UNSPECIFIED",
            "OFF",
            "GLOBAL",
            "SESSION"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "Settings": {
      "description": "Describes the Migration Center settings related to the project.",
      "properties": {
        "name": {
          "description": "Output only. The name of the resource.",
          "readOnly": true,
          "type": "string"
        },
        "customerConsentForGoogleSalesToAccessMigrationCenter": {
          "type": "boolean",
          "description": "Customer consent for Google sales to access their Cloud Migration Center project."
        },
        "preferenceSet": {
          "description": "The preference set used by default for a project.",
          "type": "string"
        },
        "disableCloudLogging": {
          "description": "Disable Cloud Logging for the Migration Center API. Users are billed for the logs.",
          "type": "boolean"
        }
      },
      "id": "Settings",
      "type": "object"
    },
    "OperatingSystemPricingPreferencesOperatingSystemPricing": {
      "type": "object",
      "description": "Pricing options of an OS image.",
      "properties": {
        "commitmentPlan": {
          "description": "Optional. The plan of commitments for committed use discounts (CUD).",
          "enumDescriptions": [
            "Unspecified commitment plan.",
            "No commitment plan (on-demand usage).",
            "1-year committed use discount.",
            "3-year committed use discount."
          ],
          "enum": [
            "COMMITMENT_PLAN_UNSPECIFIED",
            "COMMITMENT_PLAN_ON_DEMAND",
            "COMMITMENT_PLAN_1_YEAR",
            "COMMITMENT_PLAN_3_YEAR"
          ],
          "type": "string"
        },
        "licenseType": {
          "type": "string",
          "enum": [
            "LICENSE_TYPE_UNSPECIFIED",
            "LICENSE_TYPE_DEFAULT",
            "LICENSE_TYPE_BRING_YOUR_OWN_LICENSE"
          ],
          "description": "Optional. License type for premium images (RHEL, RHEL for SAP, SLES, SLES for SAP, Windows Server).",
          "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 license."
          ]
        }
      },
      "id": "OperatingSystemPricingPreferencesOperatingSystemPricing"
    },
    "ComputeEngineMigrationTarget": {
      "id": "ComputeEngineMigrationTarget",
      "description": "Compute engine migration target.",
      "properties": {
        "shape": {
          "description": "Description of the suggested shape for the migration target.",
          "$ref": "ComputeEngineShapeDescriptor"
        }
      },
      "type": "object"
    },
    "ListSourcesResponse": {
      "type": "object",
      "id": "ListSourcesResponse",
      "description": "Response message for listing sources.",
      "properties": {
        "sources": {
          "type": "array",
          "items": {
            "$ref": "Source"
          },
          "description": "The list of sources."
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token identifying a page of results the server should return."
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "RunReportExportJobRequest": {
      "type": "object",
      "id": "RunReportExportJobRequest",
      "description": "A request to run a report export job.",
      "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"
        }
      }
    },
    "ListPreferenceSetsResponse": {
      "type": "object",
      "description": "Response message for listing preference sets.",
      "properties": {
        "preferenceSets": {
          "description": "The list of PreferenceSets",
          "type": "array",
          "items": {
            "$ref": "PreferenceSet"
          }
        },
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "ListPreferenceSetsResponse"
    },
    "IssueCompatibilityIssue": {
      "type": "object",
      "id": "IssueCompatibilityIssue",
      "description": "Details about a compatibility issue.",
      "properties": {
        "associatedValue": {
          "type": "string",
          "description": "Output only. A string representation of actual value associated with this issue. Some values may contain aggregated information, such as a flag name and the actual value assigned to it.",
          "readOnly": true
        },
        "category": {
          "description": "Output only. Category of this compatibility issue.",
          "readOnly": true,
          "enumDescriptions": [
            "An unspecified compatibility category.",
            "Database flag compatibility category.",
            "Database feature compatibility category."
          ],
          "type": "string",
          "enum": [
            "CATEGORY_UNSPECIFIED",
            "DATABASE_FLAG",
            "DATABASE_FEATURE"
          ]
        },
        "associatedObjectType": {
          "readOnly": true,
          "enumDescriptions": [
            "An unspecified object type.",
            "A database deployment object type.",
            "A logical database object type.",
            "A schema object type."
          ],
          "type": "string",
          "enum": [
            "OBJECT_TYPE_UNSPECIFIED",
            "DATABASE_DEPLOYMENT",
            "DATABASE",
            "SCHEMA"
          ],
          "description": "Output only. Type of object associated with this migration compatibility issue."
        },
        "associatedObject": {
          "description": "Output only. Name of the object associated with this compatibility issue relative to the relevant asset. Does not represent a fully qualified resource name and is not intended for programmatic use.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "Asset": {
      "description": "An asset represents a resource in your environment. Asset types include virtual machines and databases.",
      "properties": {
        "createTime": {
          "description": "Output only. The timestamp when the asset was created.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "awsLambdaFunctionDetails": {
          "description": "Output only. Asset information specific for AWS Lambda functions.",
          "readOnly": true,
          "$ref": "AwsLambdaFunctionDetails"
        },
        "virtualMachineDetails": {
          "description": "Output only. Asset information specific for virtual machines.",
          "readOnly": true,
          "$ref": "VirtualMachineDetails"
        },
        "hideReason": {
          "description": "Optional. An optional reason for marking this asset as hidden.",
          "type": "string"
        },
        "awsElasticNetworkInterfaceDetails": {
          "description": "Output only. Asset information specific for AWS Elastic Network Interfaces.",
          "readOnly": true,
          "$ref": "AwsElasticNetworkInterfaceDetails"
        },
        "title": {
          "description": "Output only. Server generated human readable name of the asset.",
          "readOnly": true,
          "type": "string"
        },
        "awsAppSyncGraphqlApiDetails": {
          "description": "Output only. Asset information specific for AWS AppSync GraphQL APIs.",
          "readOnly": true,
          "$ref": "AwsAppSyncGraphqlApiDetails"
        },
        "awsApplicationLoadBalancerDetails": {
          "description": "Output only. Asset information specific for AWS Application Load Balancers.",
          "readOnly": true,
          "$ref": "AwsApplicationLoadBalancerDetails"
        },
        "awsEcsClusterDetails": {
          "description": "Output only. Asset information specific for AWS ECS clusters.",
          "readOnly": true,
          "$ref": "AwsEcsClusterDetails"
        },
        "awsEbsVolumeDetails": {
          "description": "Output only. Asset information specific for AWS EBS Volumes.",
          "readOnly": true,
          "$ref": "AwsEbsVolumeDetails"
        },
        "labels": {
          "description": "Labels as key value pairs.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "hidden": {
          "type": "boolean",
          "description": "Optional. Indicates if the asset is hidden."
        },
        "databaseDetails": {
          "description": "Output only. Asset information specific for logical databases.",
          "readOnly": true,
          "$ref": "DatabaseDetails"
        },
        "insightList": {
          "description": "Output only. The list of insights associated with the asset.",
          "readOnly": true,
          "$ref": "InsightList"
        },
        "hostingProviderDetails": {
          "description": "Output only. Details about the hosting provider of the asset.",
          "readOnly": true,
          "$ref": "HostingProviderDetails"
        },
        "performanceData": {
          "description": "Performance data for the asset.",
          "$ref": "AssetPerformanceData"
        },
        "hideTime": {
          "type": "string",
          "description": "Output only. The timestamp when the asset was marked as hidden.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "awsEcrRepositoryDetails": {
          "description": "Output only. Asset information specific for AwsEcrRepositoryDetails",
          "readOnly": true,
          "$ref": "AwsEcrRepositoryDetails"
        },
        "awsGlueJobDetails": {
          "description": "Output only. Asset information specific for AwsGlueJobDetails",
          "readOnly": true,
          "$ref": "AwsGlueJobDetails"
        },
        "sources": {
          "description": "Output only. The list of sources contributing to the asset.",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "machineDetails": {
          "description": "Output only. Asset information specific for virtual machines.",
          "readOnly": true,
          "$ref": "MachineDetails"
        },
        "attributes": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Generic asset attributes."
        },
        "awsEmrClusterDetails": {
          "description": "Output only. Asset information specific for AwsEmrClusterDetails",
          "readOnly": true,
          "$ref": "AwsEmrClusterDetails"
        },
        "assignedGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The list of groups that the asset is assigned to.",
          "readOnly": true
        },
        "awsFirehoseDetails": {
          "description": "Output only. Asset information specific for AwsFirehoseDetails",
          "readOnly": true,
          "$ref": "AwsFirehoseDetails"
        },
        "structuredAttributes": {
          "description": "Optional. Generic structured asset attributes.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          }
        },
        "awsBatchComputeEnvironmentDetails": {
          "description": "Output only. Asset information specific for AWS Batch Compute Environments.",
          "readOnly": true,
          "$ref": "AwsBatchComputeEnvironmentDetails"
        },
        "awsInternetGatewayDetails": {
          "description": "Output only. Asset information specific for AWS Internet Gateways.",
          "readOnly": true,
          "$ref": "AwsInternetGatewayDetails"
        },
        "awsRedshiftDetails": {
          "description": "Output only. Asset information specific for AWS Redshift",
          "readOnly": true,
          "$ref": "AwsRedshiftDetails"
        },
        "awsElasticIpAddressDetails": {
          "description": "Output only. Asset information specific for AWS Elastic IP Addresses.",
          "readOnly": true,
          "$ref": "AwsElasticIpAddressDetails"
        },
        "awsNatGatewayDetails": {
          "description": "Output only. Asset information specific for AwsNatGatewayDetails",
          "readOnly": true,
          "$ref": "AwsNatGatewayDetails"
        },
        "updateTime": {
          "description": "Output only. The timestamp when the asset was last updated.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "awsRoute53HostedZoneDetails": {
          "description": "Output only. Asset information specific for AwsRoute53HostedZoneDetails",
          "readOnly": true,
          "$ref": "AwsRoute53HostedZoneDetails"
        },
        "name": {
          "type": "string",
          "description": "Output only. The full name of the asset.",
          "readOnly": true
        },
        "awsEksClusterDetails": {
          "description": "Output only. Asset information specific for AWS EKS clusters.",
          "readOnly": true,
          "$ref": "AwsEksClusterDetails"
        },
        "awsEfsFileSystemDetails": {
          "description": "Output only. Asset information specific for AWS EFS file systems.",
          "readOnly": true,
          "$ref": "AwsEfsFileSystemDetails"
        },
        "awsElbLoadBalancerDetails": {
          "description": "Output only. Asset information specific for AWS Load Balancers.",
          "readOnly": true,
          "$ref": "AwsElbLoadBalancerDetails"
        },
        "awsAthenaWorkGroupDetails": {
          "description": "Output only. Asset information specific for AwsAthenaWorkGroupDetails",
          "readOnly": true,
          "$ref": "AwsAthenaWorkGroupDetails"
        },
        "awsS3BucketDetails": {
          "description": "Output only. Asset information specific for AWS S3 buckets.",
          "readOnly": true,
          "$ref": "AwsS3BucketDetails"
        },
        "awsCloudFrontDistributionDetails": {
          "description": "Output only. Asset information specific for AWS CloudFront distributions.",
          "readOnly": true,
          "$ref": "AwsCloudFrontDistributionDetails"
        },
        "awsVpcDetails": {
          "description": "Output only. Asset information specific for AWS VPCs.",
          "readOnly": true,
          "$ref": "AwsVpcDetails"
        },
        "databaseDeploymentDetails": {
          "description": "Output only. Asset information specific for database deployments.",
          "readOnly": true,
          "$ref": "DatabaseDeploymentDetails"
        },
        "awsElasticacheClusterDetails": {
          "description": "Output only. Asset information specific for AWS ElastiCache Clusters.",
          "readOnly": true,
          "$ref": "AwsElastiCacheClusterDetails"
        },
        "awsDynamodbTableDetails": {
          "description": "Output only. Asset information specific for AWS DynamoDB tables.",
          "readOnly": true,
          "$ref": "AwsDynamoDBTableDetails"
        },
        "awsAutoscalingGroupDetails": {
          "description": "Output only. Asset information specific for AwsAutoscalingGroupDetails",
          "readOnly": true,
          "$ref": "AwsAutoscalingGroupDetails"
        },
        "awsKinesisStreamDetails": {
          "description": "Output only. Asset information specific for AwsKinesisStreamDetails",
          "readOnly": true,
          "$ref": "AwsKinesisStreamDetails"
        },
        "awsSnsTopicDetails": {
          "description": "Output only. Asset information specific for AWS SNS Topics.",
          "readOnly": true,
          "$ref": "AwsSnsTopicDetails"
        },
        "awsApiGatewayRestApiDetails": {
          "description": "Output only. Asset information specific for AWS API Gateway REST APIs.",
          "readOnly": true,
          "$ref": "AwsApiGatewayRestApiDetails"
        }
      },
      "id": "Asset",
      "type": "object"
    },
    "SignedUris": {
      "type": "object",
      "id": "SignedUris",
      "description": "Contains a list of Signed URIs.",
      "properties": {
        "signedUris": {
          "items": {
            "$ref": "SignedUri"
          },
          "type": "array",
          "description": "Output only. List of signed URIs.",
          "readOnly": true
        }
      }
    },
    "MigrationInsight": {
      "type": "object",
      "id": "MigrationInsight",
      "description": "An insight about potential migrations for an asset.",
      "properties": {
        "computeEngineTarget": {
          "description": "Output only. A Google Compute Engine target.",
          "readOnly": true,
          "$ref": "ComputeEngineMigrationTarget"
        },
        "vmwareEngineTarget": {
          "description": "Output only. A VMWare Engine target.",
          "readOnly": true,
          "$ref": "VmwareEngineMigrationTarget"
        },
        "computeEngineSoleTenantTarget": {
          "description": "Output only. A Google Compute Engine Sole Tenant target.",
          "readOnly": true,
          "$ref": "ComputeEngineSoleTenantMigrationTarget"
        },
        "cloudDatabaseTarget": {
          "description": "Output only. A Cloud database migration target.",
          "readOnly": true,
          "$ref": "CloudDatabaseMigrationTarget"
        },
        "fit": {
          "description": "Output only. Description of how well the asset this insight is associated with fits the proposed migration.",
          "readOnly": true,
          "$ref": "FitDescriptor"
        },
        "gkeTarget": {
          "description": "Output only. A Google Kubernetes Engine target.",
          "readOnly": true,
          "$ref": "GoogleKubernetesEngineMigrationTarget"
        },
        "issues": {
          "description": "Output only. Issues associated with this migration.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "Issue"
          }
        }
      }
    },
    "FileValidationReport": {
      "id": "FileValidationReport",
      "description": "A resource that aggregates the validation errors found in an import job file.",
      "properties": {
        "fileErrors": {
          "items": {
            "$ref": "ImportError"
          },
          "type": "array",
          "description": "List of file level errors."
        },
        "partialReport": {
          "description": "Flag indicating that processing was aborted due to maximum number of errors.",
          "type": "boolean"
        },
        "fileName": {
          "description": "The name of the file.",
          "type": "string"
        },
        "rowErrors": {
          "type": "array",
          "items": {
            "$ref": "ImportRowError"
          },
          "description": "Partial list of rows that encountered validation error."
        }
      },
      "type": "object"
    },
    "ListImportJobsResponse": {
      "type": "object",
      "description": "A response for listing import jobs.",
      "properties": {
        "importJobs": {
          "type": "array",
          "items": {
            "$ref": "ImportJob"
          },
          "description": "The list of import jobs."
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token identifying a page of results the server should return."
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached."
        }
      },
      "id": "ListImportJobsResponse"
    },
    "SqlServerSchemaDetails": {
      "type": "object",
      "id": "SqlServerSchemaDetails",
      "description": "Specific details for a SqlServer database.",
      "properties": {
        "clrObjectCount": {
          "description": "Optional. SqlServer number of CLR objects.",
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "DateTime": {
      "type": "object",
      "id": "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.",
      "properties": {
        "nanos": {
          "type": "integer",
          "description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.",
          "format": "int32"
        },
        "hours": {
          "type": "integer",
          "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"
        },
        "seconds": {
          "type": "integer",
          "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"
        },
        "day": {
          "type": "integer",
          "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"
        },
        "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"
        },
        "timeZone": {
          "description": "Time zone.",
          "$ref": "TimeZone"
        },
        "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"
        },
        "year": {
          "type": "integer",
          "description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.",
          "format": "int32"
        },
        "minutes": {
          "type": "integer",
          "description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.",
          "format": "int32"
        }
      }
    },
    "ReportSummaryVMWareNode": {
      "type": "object",
      "id": "ReportSummaryVMWareNode",
      "description": "A VMWare Engine Node",
      "properties": {
        "code": {
          "description": "Code to identify VMware Engine node series, e.g. \"ve1-standard-72\". Based on the displayName of cloud.google.com/vmware-engine/docs/reference/rest/v1/projects.locations.nodeTypes",
          "type": "string"
        }
      }
    },
    "RunningProcess": {
      "type": "object",
      "description": "Guest OS running process details.",
      "properties": {
        "pid": {
          "type": "string",
          "description": "Process ID.",
          "format": "int64"
        },
        "exePath": {
          "description": "Process binary path.",
          "type": "string"
        },
        "cmdline": {
          "description": "Process full command line.",
          "type": "string"
        },
        "attributes": {
          "description": "Process extended attributes.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "user": {
          "type": "string",
          "description": "User running the process."
        }
      },
      "id": "RunningProcess"
    },
    "Empty": {
      "type": "object",
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "properties": {},
      "id": "Empty"
    },
    "PayloadFile": {
      "description": "Payload file for inline import job payload.",
      "properties": {
        "data": {
          "type": "string",
          "description": "The file data.",
          "format": "byte"
        },
        "name": {
          "type": "string",
          "description": "The file name."
        }
      },
      "id": "PayloadFile",
      "type": "object"
    },
    "AwsAppSyncGraphqlApiDetails": {
      "id": "AwsAppSyncGraphqlApiDetails",
      "description": "Asset information specific for AWS AppSync GraphQL APIs.",
      "properties": {},
      "type": "object"
    },
    "SoleTenantNodeType": {
      "id": "SoleTenantNodeType",
      "description": "A Sole Tenant node type.",
      "properties": {
        "nodeName": {
          "description": "Name of the Sole Tenant node. Consult https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DatabasePreferencesCloudSqlCommon": {
      "type": "object",
      "description": "Preferences common to Cloud SQL databases.",
      "properties": {
        "commitmentPlan": {
          "description": "Optional. Commitment plan to consider when calculating costs. Only regular CUDs (not flexible) are currently available.",
          "enumDescriptions": [
            "Unspecified commitment plan.",
            "No commitment plan.",
            "1-year regular committed use discount.",
            "3-year regular committed use discount.",
            "1-year flexible committed use discount. While not supported in the v1 API, this value is converted to UNSPECIFIED in conversions to the v1 API.",
            "3-year flexible committed use discount. While not supported in the v1 API, this value is converted to UNSPECIFIED in conversions to the v1 API."
          ],
          "type": "string",
          "enum": [
            "COMMITMENT_PLAN_UNSPECIFIED",
            "COMMITMENT_PLAN_NONE",
            "COMMITMENT_PLAN_ONE_YEAR",
            "COMMITMENT_PLAN_THREE_YEARS",
            "COMMITMENT_PLAN_FLEXIBLE_ONE_YEAR",
            "COMMITMENT_PLAN_FLEXIBLE_THREE_YEARS"
          ]
        },
        "edition": {
          "description": "Optional. Preferred Cloud SQL edition.",
          "enumDescriptions": [
            "An unspecified Cloud SQL edition.",
            "Provides all core capabilities of Cloud SQL and is suitable for applications requiring a balance of performance, availability, and cost.",
            "Provides the best performance and availability to run applications requiring the highest level of availability and performance in addition to the capabilities of the Cloud SQL Enterprise edition. Note: SQL Server is not available in Enterprise Plus edition. For SQL Server, Enterprise will always be recommended."
          ],
          "enum": [
            "CLOUD_SQL_EDITION_UNSPECIFIED",
            "CLOUD_SQL_EDITION_ENTERPRISE",
            "CLOUD_SQL_EDITION_ENTERPRISE_PLUS"
          ],
          "type": "string"
        },
        "persistentDiskType": {
          "enum": [
            "PERSISTENT_DISK_TYPE_UNSPECIFIED",
            "PERSISTENT_DISK_TYPE_STANDARD",
            "PERSISTENT_DISK_TYPE_BALANCED",
            "PERSISTENT_DISK_TYPE_SSD"
          ],
          "type": "string",
          "description": "Optional. Persistent disk type to use. If unspecified, a disk type is recommended based on available usage data. For SQL Server, only SSD is available. For MySQL and PostgreSQL, only STANDARD (HDD) and SSD types are available.",
          "enumDescriptions": [
            "Unspecified. Fallback to default value based on context.",
            "Standard HDD Persistent Disk.",
            "Balanced Persistent Disk.",
            "SSD Persistent Disk."
          ]
        },
        "backup": {
          "description": "Optional. Preferences for database backups.",
          "$ref": "DatabasePreferencesCloudSqlCommonBackup"
        },
        "zoneAvailability": {
          "description": "Optional. Preferred zone availability.",
          "enumDescriptions": [
            "An unspecified Cloud SQL zone availability.",
            "The instance serves data from only one zone. In case of outage, no failover. Not recommended for production.",
            "The instance can serve data from multiple zones in a region. Highly available. Automatic failover to another zone within your selected region. Recommended for production instances. Increases cost."
          ],
          "enum": [
            "CLOUD_SQL_ZONE_AVAILABILITY_UNSPECIFIED",
            "CLOUD_SQL_ZONE_AVAILABILITY_ZONAL",
            "CLOUD_SQL_ZONE_AVAILABILITY_REGIONAL"
          ],
          "type": "string"
        },
        "sizingOptimizationStrategy": {
          "description": "Optional. Sizing optimization strategy of the database. Currently supported for Cloud SQL are just two values: SIZING_OPTIMIZATION_STRATEGY_MODERATE and SIZING_OPTIMIZATION_STRATEGY_SAME_AS_SOURCE. SIZING_OPTIMIZATION_STRATEGY_UNSPECIFIED will behave like SIZING_OPTIMIZATION_STRATEGY_MODERATE.",
          "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.",
            "Virtual machine sizing will be determined by custom parameters. While not supported in the v1 API, this value is converted to UNSPECIFIED in conversions to the v1 API."
          ],
          "enum": [
            "SIZING_OPTIMIZATION_STRATEGY_UNSPECIFIED",
            "SIZING_OPTIMIZATION_STRATEGY_SAME_AS_SOURCE",
            "SIZING_OPTIMIZATION_STRATEGY_MODERATE",
            "SIZING_OPTIMIZATION_STRATEGY_AGGRESSIVE",
            "SIZING_OPTIMIZATION_STRATEGY_CUSTOM"
          ],
          "type": "string"
        }
      },
      "id": "DatabasePreferencesCloudSqlCommon"
    },
    "FitDescriptor": {
      "type": "object",
      "description": "Describes the fit level of an asset for migration to a specific target.",
      "properties": {
        "fitLevel": {
          "readOnly": true,
          "enumDescriptions": [
            "Not enough information.",
            "Fit.",
            "No Fit.",
            "Fit with effort."
          ],
          "type": "string",
          "enum": [
            "FIT_LEVEL_UNSPECIFIED",
            "FIT",
            "NO_FIT",
            "REQUIRES_EFFORT"
          ],
          "description": "Output only. Fit level."
        }
      },
      "id": "FitDescriptor"
    },
    "HostingProviderDetails": {
      "type": "object",
      "description": "Details about the hosting platform of the asset.",
      "properties": {
        "createTime": {
          "description": "Optional. The timestamp when resource was created in the hosting provider.",
          "format": "google-datetime",
          "type": "string"
        },
        "originalId": {
          "description": "Optional. Unique identifier for the asset in the hosting provider.",
          "type": "string"
        },
        "location": {
          "description": "Optional. Location of the asset.",
          "$ref": "ResourceLocation"
        },
        "displayName": {
          "type": "string",
          "description": "Optional. Display name of the asset."
        },
        "aws": {
          "description": "Optional. The AWS platform details.",
          "$ref": "HostingProviderDetailsAws"
        }
      },
      "id": "HostingProviderDetails"
    },
    "DiskEntryList": {
      "id": "DiskEntryList",
      "description": "VM disks.",
      "properties": {
        "entries": {
          "description": "Disk entries.",
          "items": {
            "$ref": "DiskEntry"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ReportSummaryChartData": {
      "type": "object",
      "description": "Describes a collection of data points rendered as a Chart.",
      "properties": {
        "dataPoints": {
          "items": {
            "$ref": "ReportSummaryChartDataDataPoint"
          },
          "type": "array",
          "description": "Each data point in the chart is represented as a name-value pair with the name being the x-axis label, and the value being the y-axis value."
        }
      },
      "id": "ReportSummaryChartData"
    },
    "RunningServiceList": {
      "id": "RunningServiceList",
      "description": "List of running guest OS services.",
      "properties": {
        "services": {
          "type": "array",
          "items": {
            "$ref": "RunningService"
          },
          "description": "Running service entries."
        },
        "entries": {
          "description": "Running service entries.",
          "type": "array",
          "items": {
            "$ref": "RunningService"
          }
        }
      },
      "type": "object"
    },
    "ResourceLocation": {
      "description": "Location of a resource.",
      "properties": {
        "region": {
          "type": "string",
          "description": "Optional. The name of the region."
        }
      },
      "id": "ResourceLocation",
      "type": "object"
    },
    "ReportExportExecutionResult": {
      "type": "object",
      "description": "Contains the result of the report export.",
      "properties": {
        "error": {
          "description": "Output only. Error encountered during export.",
          "readOnly": true,
          "$ref": "Status"
        },
        "signedUris": {
          "description": "Output only. Signed URLs for downloading export artifacts.",
          "readOnly": true,
          "$ref": "SignedUris"
        },
        "outputFiles": {
          "description": "Output only. List of output files.",
          "readOnly": true,
          "$ref": "OutputFileList"
        }
      },
      "id": "ReportExportExecutionResult"
    },
    "Location": {
      "id": "Location",
      "description": "A resource that represents a Google Cloud location.",
      "properties": {
        "metadata": {
          "description": "Service-specific metadata. For example the available capacity at the given location.",
          "type": "object",
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          }
        },
        "displayName": {
          "type": "string",
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\"."
        },
        "labels": {
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "name": {
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`",
          "type": "string"
        },
        "locationId": {
          "type": "string",
          "description": "The canonical id for this location. For example: `\"us-east1\"`."
        }
      },
      "type": "object"
    },
    "SignedUriDestination": {
      "type": "object",
      "description": "Signed URI destination configuration.",
      "properties": {
        "fileFormat": {
          "enum": [
            "FILE_FORMAT_UNSPECIFIED",
            "CSV",
            "XLSX"
          ],
          "type": "string",
          "description": "Required. The file format to export.",
          "enumDescriptions": [
            "Unspecified file format will be treated as CSV.",
            "CSV file format.",
            "XLSX file format which used in Excel."
          ]
        }
      },
      "id": "SignedUriDestination"
    },
    "VirtualMachinePreferencesSizingOptimizationCustomParameters": {
      "description": "Custom data to use for sizing optimizations.",
      "properties": {
        "aggregationMethod": {
          "description": "Optional. Type of statistical aggregation of a resource utilization data, on which to base the sizing metrics.",
          "enumDescriptions": [
            "Unspecified aggregation method. Can be used for default value.",
            "Average of utilization data.",
            "Median of utilization data.",
            "95th percentile of utilization data.",
            "Peak of utilization data."
          ],
          "enum": [
            "AGGREGATION_METHOD_UNSPECIFIED",
            "AGGREGATION_METHOD_AVERAGE",
            "AGGREGATION_METHOD_MEDIAN",
            "AGGREGATION_METHOD_NINETY_FIFTH_PERCENTILE",
            "AGGREGATION_METHOD_PEAK"
          ],
          "type": "string"
        },
        "cpuUsagePercentage": {
          "type": "integer",
          "description": "Optional. Desired percentage of CPU usage. Must be in the interval [1, 100] (or 0 for default value).",
          "format": "int32"
        },
        "storageMultiplier": {
          "description": "Optional. Desired increase factor of storage, relative to currently used storage. Must be in the interval [1.0, 2.0] (or 0 for default value).",
          "format": "double",
          "type": "number"
        },
        "memoryUsagePercentage": {
          "description": "Optional. Desired percentage of memory usage. Must be in the interval [1, 100] (or 0 for default value).",
          "format": "int32",
          "type": "integer"
        }
      },
      "id": "VirtualMachinePreferencesSizingOptimizationCustomParameters",
      "type": "object"
    },
    "AwsS3BucketDetails": {
      "description": "Asset information specific for AWS S3 buckets.",
      "properties": {
        "objectsMetadata": {
          "description": "Optional. The metadata of the objects in the bucket.",
          "$ref": "AwsS3BucketDetailsObjectsMetadata"
        },
        "versioning": {
          "description": "Optional. Versioning configuration of the bucket.",
          "$ref": "AwsS3BucketDetailsVersioning"
        },
        "storageClasses": {
          "description": "Optional. The storage classes in the bucket.",
          "items": {
            "$ref": "AwsS3BucketDetailsStorageClass"
          },
          "type": "array"
        }
      },
      "id": "AwsS3BucketDetails",
      "type": "object"
    },
    "DatabasePreferencesCloudSqlMySql": {
      "id": "DatabasePreferencesCloudSqlMySql",
      "description": "Preferences for MySQL on Cloud SQL.",
      "properties": {
        "common": {
          "description": "Optional. Preferences to Cloud SQL databases.",
          "$ref": "DatabasePreferencesCloudSqlCommon"
        }
      },
      "type": "object"
    },
    "ReportSummaryUtilizationChartData": {
      "type": "object",
      "id": "ReportSummaryUtilizationChartData",
      "description": "Utilization Chart is a specific type of visualization which displays a metric classified into \"Used\" and \"Free\" buckets.",
      "properties": {
        "used": {
          "description": "Aggregate value which falls into the \"Used\" bucket.",
          "format": "int64",
          "type": "string"
        },
        "free": {
          "type": "string",
          "description": "Aggregate value which falls into the \"Free\" bucket.",
          "format": "int64"
        }
      }
    },
    "AggregationResultCount": {
      "type": "object",
      "description": "The result of a count aggregation.",
      "properties": {
        "value": {
          "format": "int64",
          "type": "string"
        }
      },
      "id": "AggregationResultCount"
    },
    "DatabasePreferencesCloudSqlCommonBackup": {
      "description": "Preferences for database backups.",
      "properties": {
        "backupMode": {
          "type": "string",
          "enum": [
            "BACKUP_MODE_UNSPECIFIED",
            "BACKUP_MODE_DISABLED",
            "BACKUP_MODE_ENABLED"
          ],
          "description": "Optional. Automated backup mode.",
          "enumDescriptions": [
            "An unspecified database backup mode.",
            "Automatic backups disabled, no additional charges for storage.",
            "Automatic backups enabled, there will be additional charges for storage."
          ]
        }
      },
      "id": "DatabasePreferencesCloudSqlCommonBackup",
      "type": "object"
    },
    "XlsxOutputFile": {
      "type": "object",
      "id": "XlsxOutputFile",
      "description": "Contains a single output file of type XLSX.",
      "properties": {
        "signedUri": {
          "description": "Output only. Signed URI destination.",
          "readOnly": true,
          "$ref": "SignedUri"
        }
      }
    },
    "ListImportDataFilesResponse": {
      "id": "ListImportDataFilesResponse",
      "description": "Response for listing payload files of an import job.",
      "properties": {
        "importDataFiles": {
          "description": "The list of import data files.",
          "type": "array",
          "items": {
            "$ref": "ImportDataFile"
          }
        },
        "nextPageToken": {
          "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "DatabaseDeploymentDetails": {
      "description": "The details of a database deployment asset.",
      "properties": {
        "edition": {
          "description": "The database deployment edition.",
          "type": "string"
        },
        "mysql": {
          "description": "Details of a MYSQL database deployment.",
          "$ref": "MysqlDatabaseDeployment"
        },
        "version": {
          "description": "The database deployment version.",
          "type": "string"
        },
        "manualUniqueId": {
          "description": "A manual unique ID set by the user.",
          "type": "string"
        },
        "generatedId": {
          "type": "string",
          "description": "The database deployment generated ID."
        },
        "sqlServer": {
          "description": "Details of a Microsoft SQL Server database deployment.",
          "$ref": "SqlServerDatabaseDeployment"
        },
        "awsRds": {
          "description": "Optional. Details of an AWS RDS instance.",
          "$ref": "AwsRds"
        },
        "topology": {
          "description": "Details of the database deployment topology.",
          "$ref": "DatabaseDeploymentTopology"
        },
        "postgresql": {
          "description": "Details of a PostgreSQL database deployment.",
          "$ref": "PostgreSqlDatabaseDeployment"
        },
        "aggregatedStats": {
          "description": "Output only. Aggregated stats for the database deployment.",
          "readOnly": true,
          "$ref": "DatabaseDeploymentDetailsAggregatedStats"
        }
      },
      "id": "DatabaseDeploymentDetails",
      "type": "object"
    },
    "ReportSummarySoleTenantNodeAllocation": {
      "type": "object",
      "description": "Represents the assets allocated to a specific Sole-Tenant node type.",
      "properties": {
        "nodeCount": {
          "description": "Count of this node type to be provisioned",
          "format": "int64",
          "type": "string"
        },
        "allocatedAssetCount": {
          "type": "string",
          "description": "Count of assets allocated to these nodes",
          "format": "int64"
        },
        "node": {
          "description": "Sole Tenant node type, e.g. \"m3-node-128-3904\"",
          "$ref": "SoleTenantNodeType"
        }
      },
      "id": "ReportSummarySoleTenantNodeAllocation"
    },
    "RunningService": {
      "description": "Guest OS running service details.",
      "properties": {
        "serviceName": {
          "description": "Service name.",
          "type": "string"
        },
        "startMode": {
          "type": "string",
          "description": "Service start mode (raw, OS-agnostic)."
        },
        "exePath": {
          "type": "string",
          "description": "Service binary path."
        },
        "pid": {
          "description": "Service pid.",
          "format": "int64",
          "type": "string"
        },
        "name": {
          "description": "Service name.",
          "type": "string"
        },
        "state": {
          "description": "Service state (raw, OS-agnostic).",
          "type": "string"
        },
        "cmdline": {
          "description": "Service command line.",
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "Service status."
        }
      },
      "id": "RunningService",
      "type": "object"
    },
    "Aggregation": {
      "description": "Message describing an aggregation. The message includes the aggregation type, parameters, and the field on which to perform the aggregation.",
      "properties": {
        "histogram": {
          "description": "Creates a bucketed histogram of field values.",
          "$ref": "AggregationHistogram"
        },
        "count": {
          "description": "Count the number of matching objects.",
          "$ref": "AggregationCount"
        },
        "field": {
          "description": "The name of the field on which to aggregate.",
          "type": "string"
        },
        "frequency": {
          "description": "Creates a frequency distribution of all field values.",
          "$ref": "AggregationFrequency"
        },
        "sum": {
          "description": "Sum over a numeric field.",
          "$ref": "AggregationSum"
        }
      },
      "id": "Aggregation",
      "type": "object"
    },
    "Issue": {
      "type": "object",
      "description": "An issue associated with a migration.",
      "properties": {
        "compatibilityIssue": {
          "description": "Output only. Details about a compatibility issue.",
          "readOnly": true,
          "$ref": "IssueCompatibilityIssue"
        },
        "issueCode": {
          "type": "string",
          "description": "Output only. Unique identifier for this issue type.",
          "readOnly": true
        },
        "description": {
          "description": "Output only. English description of the issue.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "Issue"
    },
    "ReportSummaryHistogramChartDataBucket": {
      "type": "object",
      "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.",
      "properties": {
        "lowerBound": {
          "description": "Lower bound - inclusive.",
          "format": "int64",
          "type": "string"
        },
        "upperBound": {
          "description": "Upper bound - exclusive.",
          "format": "int64",
          "type": "string"
        },
        "count": {
          "type": "string",
          "description": "Count of items in the bucket.",
          "format": "int64"
        }
      },
      "id": "ReportSummaryHistogramChartDataBucket"
    },
    "CascadeLogicalDBsRule": {
      "type": "object",
      "description": "Cascading rule for related logical DBs.",
      "properties": {},
      "id": "CascadeLogicalDBsRule"
    },
    "ReportSummaryMachineFinding": {
      "type": "object",
      "description": "A set of findings that applies to assets of type Virtual/Physical Machine.",
      "properties": {
        "allocatedAssetCount": {
          "type": "string",
          "description": "Count of assets which were allocated.",
          "format": "int64"
        },
        "machineSeriesAllocations": {
          "items": {
            "$ref": "ReportSummaryMachineSeriesAllocation"
          },
          "type": "array",
          "description": "Distribution of assets based on the Machine Series."
        },
        "allocatedDiskTypes": {
          "type": "array",
          "items": {
            "enum": [
              "PERSISTENT_DISK_TYPE_UNSPECIFIED",
              "PERSISTENT_DISK_TYPE_STANDARD",
              "PERSISTENT_DISK_TYPE_BALANCED",
              "PERSISTENT_DISK_TYPE_SSD"
            ],
            "type": "string",
            "enumDescriptions": [
              "Unspecified. Fallback to default value based on context.",
              "Standard HDD Persistent Disk.",
              "Balanced Persistent Disk.",
              "SSD Persistent Disk."
            ]
          },
          "description": "@deprecated. Use storage_allocations instead. Set of disk types allocated to assets.",
          "deprecated": true
        },
        "allocatedRegions": {
          "description": "Set of regions in which the assets were allocated.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "ReportSummaryMachineFinding"
    },
    "SoftwareInsight": {
      "type": "object",
      "id": "SoftwareInsight",
      "description": "An insight regarding software detected on an asset.",
      "properties": {
        "detectedSoftware": {
          "description": "Output only. Information about the detected software.",
          "readOnly": true,
          "$ref": "DetectedSoftware"
        }
      }
    },
    "Relation": {
      "type": "object",
      "id": "Relation",
      "description": "Message representing a relation between 2 resource.",
      "properties": {
        "srcAsset": {
          "description": "Output only. The source asset name in the relation.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Output only. Identifier. The identifier of the relation.",
          "readOnly": true
        },
        "createTime": {
          "description": "Output only. The timestamp when the relation was created.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "dstAsset": {
          "type": "string",
          "description": "Output only. The destination asset name in the relation.",
          "readOnly": true
        },
        "type": {
          "type": "string",
          "enum": [
            "TYPE_UNSPECIFIED",
            "LOGICAL_DATABASE",
            "DATABASE_DEPLOYMENT_HOSTING_SERVER"
          ],
          "description": "Optional. The type of the relation.",
          "enumDescriptions": [
            "Default value.",
            "DBDeployment -\u003e Database",
            "A relation between a machine/VM and the database deployment it hosts."
          ]
        }
      }
    },
    "GuestInstalledApplicationList": {
      "id": "GuestInstalledApplicationList",
      "description": "Guest installed application list.",
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "GuestInstalledApplication"
          },
          "description": "Application entries."
        }
      },
      "type": "object"
    },
    "OpenFileDetails": {
      "type": "object",
      "id": "OpenFileDetails",
      "description": "Open file Information.",
      "properties": {
        "command": {
          "type": "string",
          "description": "Opened file command."
        },
        "user": {
          "description": "Opened file user.",
          "type": "string"
        },
        "filePath": {
          "type": "string",
          "description": "Opened file file path."
        },
        "fileType": {
          "type": "string",
          "description": "Opened file file type."
        }
      }
    },
    "AwsCloudFrontDistributionDetails": {
      "description": "Details of an AWS CloudFront distribution.",
      "properties": {},
      "id": "AwsCloudFrontDistributionDetails",
      "type": "object"
    },
    "NetworkAddressList": {
      "id": "NetworkAddressList",
      "description": "List of allocated/assigned network addresses.",
      "properties": {
        "addresses": {
          "description": "Network address entries.",
          "type": "array",
          "items": {
            "$ref": "NetworkAddress"
          }
        },
        "entries": {
          "description": "Network address entries.",
          "type": "array",
          "items": {
            "$ref": "NetworkAddress"
          }
        }
      },
      "type": "object"
    },
    "InsightList": {
      "description": "Message containing insights list.",
      "properties": {
        "updateTime": {
          "description": "Output only. Update timestamp.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "insights": {
          "type": "array",
          "items": {
            "$ref": "Insight"
          },
          "description": "Output only. Insights of the list.",
          "readOnly": true
        }
      },
      "id": "InsightList",
      "type": "object"
    },
    "DatabaseInstance": {
      "type": "object",
      "description": "Details of a database instance.",
      "properties": {
        "instanceName": {
          "type": "string",
          "description": "The instance's name."
        },
        "network": {
          "description": "Optional. Networking details.",
          "$ref": "DatabaseInstanceNetwork"
        },
        "role": {
          "type": "string",
          "enum": [
            "ROLE_UNSPECIFIED",
            "PRIMARY",
            "SECONDARY",
            "ARBITER"
          ],
          "description": "The instance role in the database engine.",
          "enumDescriptions": [
            "Unspecified.",
            "Primary.",
            "Secondary.",
            "Arbiter."
          ]
        }
      },
      "id": "DatabaseInstance"
    },
    "ReportSummaryGroupFinding": {
      "description": "Summary Findings for a specific Group.",
      "properties": {
        "description": {
          "type": "string",
          "description": "Description for this group finding."
        },
        "group": {
          "description": "Output only. Full name of the group.",
          "readOnly": true,
          "type": "string"
        },
        "displayName": {
          "type": "string",
          "description": "Display Name for this group finding."
        },
        "databaseType": {
          "readOnly": true,
          "enumDescriptions": [
            "Unknown database type.",
            "SQL Server database.",
            "MySQL database.",
            "PostgreSQL database."
          ],
          "type": "string",
          "enum": [
            "DATABASE_TYPE_UNSPECIFIED",
            "SQL_SERVER",
            "MYSQL",
            "POSTGRES"
          ],
          "description": "Output only. Source asset database type for the group finding. Only present for databases."
        },
        "preferenceSetFindings": {
          "items": {
            "$ref": "ReportSummaryGroupPreferenceSetFinding"
          },
          "type": "array",
          "description": "Findings for each of the PreferenceSets for this group."
        },
        "assetAggregateStats": {
          "description": "Summary statistics for all the assets in this group.",
          "$ref": "ReportSummaryAssetAggregateStats"
        },
        "assetType": {
          "readOnly": true,
          "enumDescriptions": [
            "Unknown asset type.",
            "Virtual Machine asset type",
            "Database asset type"
          ],
          "enum": [
            "ASSET_TYPE_UNSPECIFIED",
            "VIRTUAL_MACHINE",
            "DATABASE"
          ],
          "type": "string",
          "description": "Output only. Asset type for the group finding."
        },
        "overlappingAssetCount": {
          "description": "This field is deprecated, do not rely on it having a value.",
          "deprecated": true,
          "format": "int64",
          "type": "string"
        }
      },
      "id": "ReportSummaryGroupFinding",
      "type": "object"
    },
    "AwsLambdaFunctionDetails": {
      "id": "AwsLambdaFunctionDetails",
      "description": "Asset information specific for AWS Lambda functions.",
      "properties": {},
      "type": "object"
    },
    "DailyResourceUsageAggregationNetwork": {
      "description": "Statistical aggregation of network usage.",
      "properties": {
        "egressBps": {
          "description": "Network egress in B/s.",
          "$ref": "DailyResourceUsageAggregationStats"
        },
        "ingressBps": {
          "description": "Network ingress in B/s.",
          "$ref": "DailyResourceUsageAggregationStats"
        }
      },
      "id": "DailyResourceUsageAggregationNetwork",
      "type": "object"
    },
    "AwsAutoscalingGroupDetails": {
      "id": "AwsAutoscalingGroupDetails",
      "description": "Asset information specific for AWS Autoscaling Group.",
      "properties": {},
      "type": "object"
    },
    "VmwareEnginePreferences": {
      "description": "The user preferences relating to Google Cloud VMware Engine target platform.",
      "properties": {
        "cpuOvercommitRatio": {
          "description": "CPU overcommit ratio. Acceptable values are between 1.0 and 8.0, with 0.1 increment.",
          "format": "double",
          "type": "number"
        },
        "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.",
          "enumDescriptions": [
            "Unspecified commitment plan.",
            "No commitment plan (on-demand usage).",
            "1 year commitment (monthly payments).",
            "3 year commitment (monthly payments).",
            "1 year commitment (upfront payment).",
            "3 years commitment (upfront payment).",
            "3-year flexible commitment (monthly payments). While not supported in the v1 API, this value is converted to UNSPECIFIED in conversions to the v1 API.",
            "3-year flexible commitment (upfront payment). While not supported in the v1 API, this value is converted to UNSPECIFIED in conversions to the v1 API."
          ],
          "type": "string",
          "enum": [
            "COMMITMENT_PLAN_UNSPECIFIED",
            "ON_DEMAND",
            "COMMITMENT_1_YEAR_MONTHLY_PAYMENTS",
            "COMMITMENT_3_YEAR_MONTHLY_PAYMENTS",
            "COMMITMENT_1_YEAR_UPFRONT_PAYMENT",
            "COMMITMENT_3_YEAR_UPFRONT_PAYMENT",
            "COMMITMENT_FLEXIBLE_3_YEAR_MONTHLY_PAYMENTS",
            "COMMITMENT_FLEXIBLE_3_YEAR_UPFRONT_PAYMENT"
          ]
        },
        "storageDeduplicationCompressionRatio": {
          "type": "number",
          "description": "The Deduplication and Compression ratio is based on the logical (Used Before) space required to store data before applying deduplication and compression, in relation to the physical (Used After) space required after applying deduplication and compression. Specifically, the ratio is the Used Before space divided by the Used After space. For example, if the Used Before space is 3 GB, but the physical Used After space is 1 GB, the deduplication and compression ratio is 3x. Acceptable values are between 1.0 and 4.0.",
          "format": "double"
        },
        "licenseDiscountPercentage": {
          "description": "Optional. Discount percentage for the license offered to you by Broadcom. Must be between 0 and 100. Only valid when service_type is set to SERVICE_TYPE_PORTABLE_LICENSE.",
          "format": "float",
          "type": "number"
        },
        "machinePreferences": {
          "description": "Optional. Preferences concerning the machine types to consider on Google Cloud VMware Engine.",
          "$ref": "VMwareEngineMachinePreferences"
        },
        "memoryOvercommitRatio": {
          "description": "Memory overcommit ratio. Acceptable values are 1.0, 1.25, 1.5, 1.75 and 2.0.",
          "format": "double",
          "type": "number"
        },
        "serviceType": {
          "type": "string",
          "enum": [
            "SERVICE_TYPE_UNSPECIFIED",
            "SERVICE_TYPE_FULLY_LICENSED",
            "SERVICE_TYPE_PORTABLE_LICENSE"
          ],
          "description": "Optional. GCVE service type (fully licensed or portable license).",
          "enumDescriptions": [
            "Same as SERVICE_TYPE_FULLY_LICENSED.",
            "Google provided VCF license.",
            "Bring Your Own License."
          ]
        }
      },
      "id": "VmwareEnginePreferences",
      "type": "object"
    },
    "RunAssetsExportJobRequest": {
      "id": "RunAssetsExportJobRequest",
      "description": "A request to run an assets export job.",
      "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"
    },
    "MemoryUsageSample": {
      "type": "object",
      "description": "Memory usage sample.",
      "properties": {
        "utilizedPercentage": {
          "type": "number",
          "description": "Percentage of system memory utilized. Must be in the interval [0, 100].",
          "format": "float"
        }
      },
      "id": "MemoryUsageSample"
    },
    "ValidateImportJobRequest": {
      "id": "ValidateImportJobRequest",
      "description": "A request to validate an import job.",
      "properties": {
        "requestId": {
          "type": "string",
          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
        }
      },
      "type": "object"
    },
    "AwsElasticNetworkInterfaceDetails": {
      "description": "Asset information specific for AWS Elastic Network Interfaces.",
      "properties": {},
      "id": "AwsElasticNetworkInterfaceDetails",
      "type": "object"
    },
    "DailyResourceUsageAggregationCPU": {
      "id": "DailyResourceUsageAggregationCPU",
      "description": "Statistical aggregation of CPU usage.",
      "properties": {
        "utilizationPercentage": {
          "description": "CPU utilization percentage.",
          "$ref": "DailyResourceUsageAggregationStats"
        }
      },
      "type": "object"
    },
    "InlinePayloadInfo": {
      "description": "A resource that represents the inline import job payload.",
      "properties": {
        "format": {
          "description": "The import job format.",
          "enumDeprecated": [
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "enum": [
            "IMPORT_JOB_FORMAT_UNSPECIFIED",
            "IMPORT_JOB_FORMAT_CMDB",
            "IMPORT_JOB_FORMAT_RVTOOLS_XLSX",
            "IMPORT_JOB_FORMAT_RVTOOLS_CSV",
            "IMPORT_JOB_FORMAT_EXPORTED_AWS_CSV",
            "IMPORT_JOB_FORMAT_EXPORTED_AZURE_CSV",
            "IMPORT_JOB_FORMAT_MANUAL_CSV",
            "IMPORT_JOB_FORMAT_DATABASE_ZIP"
          ],
          "type": "string",
          "enumDescriptions": [
            "Default value.",
            "Configuration management DB format.",
            "RVTools format (XLSX).",
            "RVTools format (CSV).",
            "CSV format exported from AWS using the [AWS collection script](https://github.com/GoogleCloudPlatform/aws-to-stratozone-export).",
            "CSV format exported from Azure using the [Azure collection script](https://github.com/GoogleCloudPlatform/azure-to-stratozone-export).",
            "CSV format created manually. For more information, see [Manually create and upload data tables](https://cloud.google.com/migrate/stratozone/docs/import-data-portal).",
            "ZIP file with nested CSV files generated by a database collector."
          ]
        },
        "payload": {
          "description": "List of payload files.",
          "type": "array",
          "items": {
            "$ref": "PayloadFile"
          }
        }
      },
      "id": "InlinePayloadInfo",
      "type": "object"
    },
    "AwsApiGatewayRestApiDetails": {
      "type": "object",
      "description": "Asset information specific for AWS API Gateway REST APIs.",
      "properties": {},
      "id": "AwsApiGatewayRestApiDetails"
    },
    "ListLocationsResponse": {
      "id": "ListLocationsResponse",
      "description": "The response message for Locations.ListLocations.",
      "properties": {
        "locations": {
          "items": {
            "$ref": "Location"
          },
          "type": "array",
          "description": "A list of locations that matches the specified filter in the request."
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Operation": {
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`."
        },
        "response": {
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`."
        },
        "done": {
          "type": "boolean",
          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available."
        },
        "metadata": {
          "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
          "type": "object",
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          }
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "Status"
        }
      },
      "id": "Operation",
      "type": "object"
    },
    "AwsDynamoDBTableDetails": {
      "type": "object",
      "description": "Details of an AWS DynamoDB table.",
      "properties": {},
      "id": "AwsDynamoDBTableDetails"
    },
    "BatchUpdateAssetsRequest": {
      "id": "BatchUpdateAssetsRequest",
      "description": "A request to update a list of assets.",
      "properties": {
        "requests": {
          "items": {
            "$ref": "UpdateAssetRequest"
          },
          "type": "array",
          "description": "Required. The request message specifying the resources to update. A maximum of 1000 assets can be modified in a batch."
        }
      },
      "type": "object"
    },
    "ReportSummaryMachineSeriesAllocation": {
      "id": "ReportSummaryMachineSeriesAllocation",
      "description": "Represents a data point tracking the count of assets allocated for a specific Machine Series.",
      "properties": {
        "machineSeries": {
          "description": "The Machine Series (e.g. \"E2\", \"N2\")",
          "$ref": "MachineSeries"
        },
        "allocatedAssetCount": {
          "description": "Count of assets allocated to this machine series.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "UpdateAssetRequest": {
      "description": "A request to update an asset.",
      "properties": {
        "updateMask": {
          "description": "Required. Field mask is used to specify the fields to be overwritten in the `Asset` resource by the update. The values specified in the `update_mask` field are relative to the resource, not the full request. A field will be overwritten if it is in the mask. A single * value in the mask lets you to overwrite all fields.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "requestId": {
          "type": "string",
          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
        },
        "asset": {
          "description": "Required. The resource being updated.",
          "$ref": "Asset"
        }
      },
      "id": "UpdateAssetRequest",
      "type": "object"
    },
    "VirtualMachinePreferences": {
      "type": "object",
      "description": "VirtualMachinePreferences enables you to create sets of preferences, for example, a geographical location and pricing track, for your migrated virtual machines. The set of preferences influence recommendations for migrating virtual machine assets.",
      "properties": {
        "networkCostParameters": {
          "description": "Optional. Parameters that affect network cost estimations. If not set, default values will be used for the parameters.",
          "$ref": "VirtualMachinePreferencesNetworkCostParameters"
        },
        "sizingOptimizationCustomParameters": {
          "description": "Optional. Custom data to use for sizing optimizations. Relevant when SizingOptimizationStrategy is set to \"custom\".",
          "$ref": "VirtualMachinePreferencesSizingOptimizationCustomParameters"
        },
        "soleTenancyPreferences": {
          "description": "Preferences concerning Sole Tenant nodes and virtual machines.",
          "$ref": "SoleTenancyPreferences"
        },
        "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. If PreferenceSet.RegionPreferences is specified, it overrides this field.",
          "$ref": "RegionPreferences"
        },
        "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.",
          "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.",
            "Virtual machine sizing will be determined by custom parameters. While not supported in the v1 API, this value is converted to UNSPECIFIED in conversions to the v1 API."
          ],
          "enum": [
            "SIZING_OPTIMIZATION_STRATEGY_UNSPECIFIED",
            "SIZING_OPTIMIZATION_STRATEGY_SAME_AS_SOURCE",
            "SIZING_OPTIMIZATION_STRATEGY_MODERATE",
            "SIZING_OPTIMIZATION_STRATEGY_AGGRESSIVE",
            "SIZING_OPTIMIZATION_STRATEGY_CUSTOM"
          ],
          "type": "string"
        },
        "targetProduct": {
          "enum": [
            "COMPUTE_MIGRATION_TARGET_PRODUCT_UNSPECIFIED",
            "COMPUTE_MIGRATION_TARGET_PRODUCT_COMPUTE_ENGINE",
            "COMPUTE_MIGRATION_TARGET_PRODUCT_VMWARE_ENGINE",
            "COMPUTE_MIGRATION_TARGET_PRODUCT_SOLE_TENANCY"
          ],
          "type": "string",
          "description": "Target product for assets using this preference set. Specify either target product or business goal, but not both.",
          "enumDescriptions": [
            "Unspecified (default value).",
            "Prefer to migrate to Google Cloud Compute Engine.",
            "Prefer to migrate to Google Cloud VMware Engine.",
            "Prefer to migrate to Google Cloud Sole Tenant Nodes."
          ]
        },
        "vmwareEnginePreferences": {
          "description": "Preferences concerning insights and recommendations for Google Cloud VMware Engine.",
          "$ref": "VmwareEnginePreferences"
        },
        "computeEnginePreferences": {
          "description": "Optional. Compute Engine preferences concern insights and recommendations for Compute Engine target.",
          "$ref": "ComputeEnginePreferences"
        },
        "estimatedUsage": {
          "description": "Optional. Estimated usage data for missing usage data. If performance data is available, it overrides this field. If not set, default values will be used for the usage data.",
          "$ref": "EstimatedUsage"
        },
        "commitmentPlan": {
          "type": "string",
          "enum": [
            "COMMITMENT_PLAN_UNSPECIFIED",
            "COMMITMENT_PLAN_NONE",
            "COMMITMENT_PLAN_ONE_YEAR",
            "COMMITMENT_PLAN_THREE_YEARS",
            "COMMITMENT_PLAN_FLEXIBLE_ONE_YEAR",
            "COMMITMENT_PLAN_FLEXIBLE_THREE_YEARS"
          ],
          "description": "Commitment plan to consider when calculating costs for virtual machine insights and recommendations. If you are unsure which value to set, a 3 year commitment plan is often a good value to start with.",
          "enumDescriptions": [
            "Unspecified commitment plan.",
            "No commitment plan.",
            "1-year regular committed use discount.",
            "3-year regular committed use discount.",
            "1-year flexible committed use discount. While not supported in the v1 API, this value is converted to UNSPECIFIED in conversions to the v1 API.",
            "3-year flexible committed use discount. While not supported in the v1 API, this value is converted to UNSPECIFIED in conversions to the v1 API."
          ]
        }
      },
      "id": "VirtualMachinePreferences"
    },
    "ExecutionReport": {
      "description": "A resource that reports result of the import job execution.",
      "properties": {
        "framesReported": {
          "type": "integer",
          "description": "Total number of asset frames reported for the import job.",
          "format": "int32"
        },
        "jobErrors": {
          "description": "List of job-level errors. Deprecated, use the job errors under execution_errors instead.",
          "deprecated": true,
          "type": "array",
          "items": {
            "$ref": "ImportError"
          }
        },
        "totalRowsCount": {
          "description": "Total number of rows in the import job.",
          "format": "int32",
          "type": "integer"
        },
        "executionErrors": {
          "description": "Validation errors encountered during the execution of the import job.",
          "$ref": "ValidationReport"
        }
      },
      "id": "ExecutionReport",
      "type": "object"
    },
    "NetworkAdapterDetails": {
      "type": "object",
      "description": "Details of network adapter.",
      "properties": {
        "adapterType": {
          "type": "string",
          "description": "Network adapter type (e.g. VMXNET3)."
        },
        "macAddress": {
          "type": "string",
          "description": "MAC address."
        },
        "addresses": {
          "description": "NetworkAddressList",
          "$ref": "NetworkAddressList"
        }
      },
      "id": "NetworkAdapterDetails"
    },
    "AwsNatGatewayDetails": {
      "type": "object",
      "description": "Details of an AWS NAT Gateway.",
      "properties": {},
      "id": "AwsNatGatewayDetails"
    },
    "ListAssetsExportJobsResponse": {
      "type": "object",
      "id": "ListAssetsExportJobsResponse",
      "description": "Response message for listing assets export jobs.",
      "properties": {
        "nextPageToken": {
          "description": "Output only. A token identifying a page of results the server should return.",
          "readOnly": true,
          "type": "string"
        },
        "assetsExportJobs": {
          "items": {
            "$ref": "AssetsExportJob"
          },
          "type": "array",
          "description": "Output only. The list of assets export jobs.",
          "readOnly": true
        }
      }
    },
    "ImportRowErrorArchiveErrorDetails": {
      "id": "ImportRowErrorArchiveErrorDetails",
      "description": "Error details for an archive file.",
      "properties": {
        "filePath": {
          "description": "The file path inside the archive where the error was detected.",
          "type": "string"
        },
        "csvError": {
          "description": "Error details for a CSV file.",
          "$ref": "ImportRowErrorCsvErrorDetails"
        }
      },
      "type": "object"
    },
    "Frames": {
      "id": "Frames",
      "description": "Collection of frame data.",
      "properties": {
        "framesData": {
          "description": "A repeated field of asset data.",
          "items": {
            "$ref": "AssetFrame"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AggregateAssetsValuesRequest": {
      "type": "object",
      "description": "A request to aggregate one or more values.",
      "properties": {
        "filter": {
          "type": "string",
          "description": "Optional. The aggregation will be performed on assets that match the provided filter."
        },
        "aggregations": {
          "type": "array",
          "items": {
            "$ref": "Aggregation"
          },
          "description": "Array of aggregations to perform. Up to 25 aggregations can be defined."
        },
        "showHidden": {
          "type": "boolean",
          "description": "Optional. When this value is set to 'true' the response will include all assets, including those that are hidden."
        }
      },
      "id": "AggregateAssetsValuesRequest"
    },
    "ListErrorFramesResponse": {
      "id": "ListErrorFramesResponse",
      "description": "A response for listing error frames.",
      "properties": {
        "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"
        },
        "errorFrames": {
          "description": "The list of error frames.",
          "items": {
            "$ref": "ErrorFrame"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListRelationsResponse": {
      "description": "Response message for listing relations.",
      "properties": {
        "relations": {
          "type": "array",
          "items": {
            "$ref": "Relation"
          },
          "description": "A list of relations."
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token identifying a page of results the server should return."
        }
      },
      "id": "ListRelationsResponse",
      "type": "object"
    },
    "DatabaseDetailsParentDatabaseDeployment": {
      "description": "The identifiers of the parent database deployment.",
      "properties": {
        "generatedId": {
          "type": "string",
          "description": "The parent database deployment generated ID."
        },
        "manualUniqueId": {
          "description": "The parent database deployment optional manual unique ID set by the user.",
          "type": "string"
        }
      },
      "id": "DatabaseDetailsParentDatabaseDeployment",
      "type": "object"
    },
    "Insight": {
      "id": "Insight",
      "description": "An insight about an asset.",
      "properties": {
        "migrationInsight": {
          "description": "Output only. An insight about potential migrations for an asset.",
          "readOnly": true,
          "$ref": "MigrationInsight"
        },
        "softwareInsight": {
          "description": "Output only. An insight regarding software detected on an asset.",
          "readOnly": true,
          "$ref": "SoftwareInsight"
        },
        "genericInsight": {
          "description": "Output only. A generic insight about an asset.",
          "readOnly": true,
          "$ref": "GenericInsight"
        }
      },
      "type": "object"
    },
    "AzureVmPlatformDetails": {
      "id": "AzureVmPlatformDetails",
      "description": "Azure VM specific details.",
      "properties": {
        "machineTypeLabel": {
          "description": "Azure platform's machine type label.",
          "type": "string"
        },
        "location": {
          "description": "The location of the machine in the Azure format.",
          "type": "string"
        },
        "provisioningState": {
          "type": "string",
          "description": "Azure platform's provisioning state."
        },
        "hyperthreading": {
          "description": "Whether the machine is hyperthreaded.",
          "enumDescriptions": [
            "Simultaneous Multithreading status unknown.",
            "Simultaneous Multithreading is disabled or unavailable.",
            "Simultaneous Multithreading is enabled."
          ],
          "type": "string",
          "enum": [
            "HYPERTHREADING_STATUS_UNSPECIFIED",
            "HYPERTHREADING_STATUS_DISABLED",
            "HYPERTHREADING_STATUS_ENABLED"
          ]
        }
      },
      "type": "object"
    },
    "AssetList": {
      "type": "object",
      "description": "Lists the asset IDs of all assets.",
      "properties": {
        "assetIds": {
          "description": "Required. A list of asset IDs",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "id": "AssetList"
    },
    "CpuUsageSample": {
      "description": "CPU usage sample.",
      "properties": {
        "utilizedPercentage": {
          "type": "number",
          "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"
        }
      },
      "id": "CpuUsageSample",
      "type": "object"
    },
    "Group": {
      "type": "object",
      "id": "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.",
      "properties": {
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels as key value pairs."
        },
        "displayName": {
          "description": "Optional. User-friendly display name.",
          "type": "string"
        },
        "createTime": {
          "type": "string",
          "description": "Output only. The timestamp when the group was created.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "name": {
          "type": "string",
          "description": "Output only. The name of the group.",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "Optional. The description of the group."
        },
        "updateTime": {
          "type": "string",
          "description": "Output only. The timestamp when the group was last updated.",
          "readOnly": true,
          "format": "google-datetime"
        }
      }
    },
    "DiskEntry": {
      "id": "DiskEntry",
      "description": "Single disk entry.",
      "properties": {
        "freeSpaceBytes": {
          "type": "string",
          "description": "Disk free space.",
          "format": "int64"
        },
        "diskLabel": {
          "description": "Disk label.",
          "type": "string"
        },
        "totalFreeBytes": {
          "type": "string",
          "description": "Disk free space.",
          "format": "int64"
        },
        "capacityBytes": {
          "description": "Disk capacity.",
          "format": "int64",
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "Disk status (e.g. online)."
        },
        "hwAddress": {
          "type": "string",
          "description": "Disk hardware address (e.g. 0:1 for SCSI)."
        },
        "interfaceType": {
          "type": "string",
          "description": "Disks interface type (e.g. SATA/SCSI)"
        },
        "partitions": {
          "description": "Partition layout.",
          "$ref": "DiskPartitionList"
        },
        "totalCapacityBytes": {
          "description": "Disk capacity.",
          "format": "int64",
          "type": "string"
        },
        "diskLabelType": {
          "type": "string",
          "description": "Disk label type (e.g. BIOS/GPT)"
        }
      },
      "type": "object"
    },
    "AssetsExportJobNetworkDependencies": {
      "id": "AssetsExportJobNetworkDependencies",
      "description": "Configuration for network dependencies exports.",
      "properties": {},
      "type": "object"
    },
    "AwsRedshiftDetails": {
      "type": "object",
      "description": "Details of an AWS Redshift cluster.",
      "properties": {},
      "id": "AwsRedshiftDetails"
    },
    "AwsEmrClusterDetails": {
      "description": "Contains details for an AWS EMR Cluster asset.",
      "properties": {},
      "id": "AwsEmrClusterDetails",
      "type": "object"
    },
    "ListAssetsResponse": {
      "type": "object",
      "description": "Response message for listing assets.",
      "properties": {
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "assets": {
          "description": "A list of assets.",
          "items": {
            "$ref": "Asset"
          },
          "type": "array"
        }
      },
      "id": "ListAssetsResponse"
    },
    "FstabEntry": {
      "type": "object",
      "description": "Single fstab entry.",
      "properties": {
        "spec": {
          "type": "string",
          "description": "The block special device or remote filesystem to be mounted."
        },
        "freq": {
          "description": "Used by dump to determine which filesystems need to be dumped.",
          "format": "int32",
          "type": "integer"
        },
        "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"
        },
        "file": {
          "description": "The mount point for the filesystem.",
          "type": "string"
        },
        "vfstype": {
          "description": "The type of the filesystem.",
          "type": "string"
        },
        "mntops": {
          "description": "Mount options associated with the filesystem.",
          "type": "string"
        }
      },
      "id": "FstabEntry"
    },
    "DatabaseDeploymentDetailsAggregatedStats": {
      "type": "object",
      "id": "DatabaseDeploymentDetailsAggregatedStats",
      "description": "Aggregated stats for the database deployment.",
      "properties": {
        "databaseCount": {
          "type": "integer",
          "description": "Output only. The number of databases in the deployment.",
          "readOnly": true,
          "format": "int32"
        }
      }
    },
    "HostsEntry": {
      "type": "object",
      "description": "Single /etc/hosts entry.",
      "properties": {
        "hostNames": {
          "description": "List of host names / aliases.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "ip": {
          "description": "IP (raw, IPv4/6 agnostic).",
          "type": "string"
        }
      },
      "id": "HostsEntry"
    },
    "VirtualMachineDiskDetails": {
      "description": "Details of VM disks.",
      "properties": {
        "hddTotalCapacityBytes": {
          "type": "string",
          "description": "Disk total Capacity.",
          "format": "int64"
        },
        "hddTotalFreeBytes": {
          "description": "Total Disk Free Space.",
          "format": "int64",
          "type": "string"
        },
        "disks": {
          "description": "List of disks.",
          "$ref": "DiskEntryList"
        },
        "lsblkJson": {
          "description": "Raw lsblk output in json.",
          "type": "string"
        }
      },
      "id": "VirtualMachineDiskDetails",
      "type": "object"
    },
    "DiskPartitionList": {
      "description": "Disk partition list.",
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "DiskPartition"
          },
          "description": "Partition entries."
        }
      },
      "id": "DiskPartitionList",
      "type": "object"
    },
    "CloudSqlForMySqlShape": {
      "type": "object",
      "description": "Cloud SQL for MySQL database shape.",
      "properties": {
        "zoneAvailability": {
          "readOnly": true,
          "enumDescriptions": [
            "An unspecified Cloud SQL zone availability.",
            "The instance serves data from only one zone. In case of outage, no failover. Not recommended for production.",
            "The instance can serve data from multiple zones in a region. Highly available. Automatic failover to another zone within your selected region. Recommended for production instances. Increases cost."
          ],
          "enum": [
            "CLOUD_SQL_ZONE_AVAILABILITY_UNSPECIFIED",
            "CLOUD_SQL_ZONE_AVAILABILITY_ZONAL",
            "CLOUD_SQL_ZONE_AVAILABILITY_REGIONAL"
          ],
          "type": "string",
          "description": "Output only. Cloud SQL zone availability."
        },
        "backupStorageGb": {
          "type": "integer",
          "description": "Output only. Predicted backup storage size in GiB.",
          "readOnly": true,
          "format": "int32"
        },
        "egressGbPerMonth": {
          "type": "string",
          "description": "Output only. Predicted Network Out traffic GiB per month.",
          "readOnly": true,
          "format": "int64"
        },
        "logicalCoreCount": {
          "description": "Output only. Number of logical cores.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "memoryMb": {
          "type": "integer",
          "description": "Output only. Predicted amount of memory in MiB.",
          "readOnly": true,
          "format": "int32"
        },
        "storage": {
          "description": "Output only. Predicted storage shape.",
          "readOnly": true,
          "$ref": "ComputeStorageDescriptor"
        },
        "version": {
          "enum": [
            "MY_SQL_VERSION_UNSPECIFIED",
            "MY_SQL_VERSION_5_6",
            "MY_SQL_VERSION_5_7",
            "MY_SQL_VERSION_8_0"
          ],
          "type": "string",
          "readOnly": true,
          "enumDescriptions": [
            "Unspecified MySQL version.",
            "MySQL 5.6.",
            "MySQL 5.7.",
            "MySQL 8.0."
          ],
          "description": "Output only. MySQL version to be used on the Cloud SQL for MySQL instance."
        },
        "edition": {
          "description": "Output only. Cloud SQL edition.",
          "type": "string",
          "enum": [
            "CLOUD_SQL_EDITION_UNSPECIFIED",
            "CLOUD_SQL_EDITION_ENTERPRISE",
            "CLOUD_SQL_EDITION_ENTERPRISE_PLUS"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "An unspecified Cloud SQL edition.",
            "Provides all core capabilities of Cloud SQL and is suitable for applications requiring a balance of performance, availability, and cost.",
            "Provides the best performance and availability to run applications requiring the highest level of availability and performance in addition to the capabilities of the Cloud SQL Enterprise edition. Note: SQL Server is not available in Enterprise Plus edition. For SQL Server, Enterprise will always be recommended."
          ]
        }
      },
      "id": "CloudSqlForMySqlShape"
    },
    "CloudSqlForPostgreSqlShape": {
      "type": "object",
      "id": "CloudSqlForPostgreSqlShape",
      "description": "Cloud SQL for PostgreSQL database shape.",
      "properties": {
        "backupStorageGb": {
          "description": "Output only. Predicted backup storage size in GiB.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "egressGbPerMonth": {
          "description": "Output only. Predicted Network Out traffic GiB per month.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "zoneAvailability": {
          "readOnly": true,
          "enumDescriptions": [
            "An unspecified Cloud SQL zone availability.",
            "The instance serves data from only one zone. In case of outage, no failover. Not recommended for production.",
            "The instance can serve data from multiple zones in a region. Highly available. Automatic failover to another zone within your selected region. Recommended for production instances. Increases cost."
          ],
          "type": "string",
          "enum": [
            "CLOUD_SQL_ZONE_AVAILABILITY_UNSPECIFIED",
            "CLOUD_SQL_ZONE_AVAILABILITY_ZONAL",
            "CLOUD_SQL_ZONE_AVAILABILITY_REGIONAL"
          ],
          "description": "Output only. Cloud SQL zone availability."
        },
        "edition": {
          "readOnly": true,
          "enumDescriptions": [
            "An unspecified Cloud SQL edition.",
            "Provides all core capabilities of Cloud SQL and is suitable for applications requiring a balance of performance, availability, and cost.",
            "Provides the best performance and availability to run applications requiring the highest level of availability and performance in addition to the capabilities of the Cloud SQL Enterprise edition. Note: SQL Server is not available in Enterprise Plus edition. For SQL Server, Enterprise will always be recommended."
          ],
          "enum": [
            "CLOUD_SQL_EDITION_UNSPECIFIED",
            "CLOUD_SQL_EDITION_ENTERPRISE",
            "CLOUD_SQL_EDITION_ENTERPRISE_PLUS"
          ],
          "type": "string",
          "description": "Output only. Cloud SQL edition."
        },
        "logicalCoreCount": {
          "description": "Output only. Number of logical cores.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "memoryMb": {
          "type": "integer",
          "description": "Output only. Predicted amount of memory in MiB.",
          "readOnly": true,
          "format": "int32"
        },
        "storage": {
          "description": "Output only. Predicted storage shape.",
          "readOnly": true,
          "$ref": "ComputeStorageDescriptor"
        },
        "version": {
          "description": "Output only. PostgreSql version to be used on the Cloud SQL for PostgreSql instance.",
          "readOnly": true,
          "enumDescriptions": [
            "Unspecified PostgreSQL version.",
            "PostgreSQL 9.6.",
            "PostgreSQL 10",
            "PostgreSQL 11",
            "PostgreSQL 12",
            "PostgreSQL 13",
            "PostgreSQL 14",
            "PostgreSQL 15"
          ],
          "enum": [
            "POSTGRESQL_VERSION_UNSPECIFIED",
            "POSTGRESQL_VERSION_9_6",
            "POSTGRESQL_VERSION_10",
            "POSTGRESQL_VERSION_11",
            "POSTGRESQL_VERSION_12",
            "POSTGRESQL_VERSION_13",
            "POSTGRESQL_VERSION_14",
            "POSTGRESQL_VERSION_15"
          ],
          "type": "string"
        }
      }
    },
    "AggregationResult": {
      "type": "object",
      "description": "Message describing a result of an aggregation.",
      "properties": {
        "field": {
          "type": "string"
        },
        "count": {
          "$ref": "AggregationResultCount"
        },
        "histogram": {
          "$ref": "AggregationResultHistogram"
        },
        "sum": {
          "$ref": "AggregationResultSum"
        },
        "frequency": {
          "$ref": "AggregationResultFrequency"
        }
      },
      "id": "AggregationResult"
    },
    "RegionPreferences": {
      "description": "The user preferences relating to target regions.",
      "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"
        }
      },
      "id": "RegionPreferences",
      "type": "object"
    },
    "AwsAthenaWorkGroupDetails": {
      "type": "object",
      "description": "Contains details for an AWS Athena Work Group asset.",
      "properties": {},
      "id": "AwsAthenaWorkGroupDetails"
    },
    "NetworkAddress": {
      "id": "NetworkAddress",
      "description": "Details of network address.",
      "properties": {
        "bcast": {
          "type": "string",
          "description": "Broadcast address."
        },
        "fqdn": {
          "type": "string",
          "description": "Fully qualified domain name."
        },
        "ipAddress": {
          "type": "string",
          "description": "Assigned or configured IP Address."
        },
        "assignment": {
          "enum": [
            "ADDRESS_ASSIGNMENT_UNSPECIFIED",
            "ADDRESS_ASSIGNMENT_STATIC",
            "ADDRESS_ASSIGNMENT_DHCP"
          ],
          "type": "string",
          "description": "Whether DHCP is used to assign addresses.",
          "enumDescriptions": [
            "Unknown (default value).",
            "Statically assigned IP.",
            "Dynamically assigned IP (DHCP)."
          ]
        },
        "subnetMask": {
          "description": "Subnet mask.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ImportRowError": {
      "id": "ImportRowError",
      "description": "A resource that reports the import job errors at row level.",
      "properties": {
        "errors": {
          "items": {
            "$ref": "ImportError"
          },
          "type": "array",
          "description": "The list of errors detected in the row."
        },
        "archiveError": {
          "description": "Error details for an archive file.",
          "$ref": "ImportRowErrorArchiveErrorDetails"
        },
        "csvError": {
          "description": "Error details for a CSV file.",
          "$ref": "ImportRowErrorCsvErrorDetails"
        },
        "vmName": {
          "description": "The name of the VM in the row.",
          "type": "string"
        },
        "rowNumber": {
          "description": "The row number where the error was detected.",
          "deprecated": true,
          "format": "int32",
          "type": "integer"
        },
        "xlsxError": {
          "description": "Error details for an XLSX file.",
          "$ref": "ImportRowErrorXlsxErrorDetails"
        },
        "vmUuid": {
          "description": "The VM UUID.",
          "type": "string"
        },
        "assetTitle": {
          "type": "string",
          "description": "The asset title."
        }
      },
      "type": "object"
    },
    "MySqlPlugin": {
      "type": "object",
      "id": "MySqlPlugin",
      "description": "MySql plugin.",
      "properties": {
        "version": {
          "description": "Required. The plugin version.",
          "type": "string"
        },
        "enabled": {
          "description": "Required. The plugin is active.",
          "type": "boolean"
        },
        "plugin": {
          "type": "string",
          "description": "Required. The plugin name."
        }
      }
    },
    "Date": {
      "type": "object",
      "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",
      "properties": {
        "month": {
          "type": "integer",
          "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
          "format": "int32"
        },
        "day": {
          "type": "integer",
          "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.",
          "format": "int32"
        },
        "year": {
          "type": "integer",
          "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
          "format": "int32"
        }
      },
      "id": "Date"
    },
    "AwsS3BucketDetailsStorageClass": {
      "id": "AwsS3BucketDetailsStorageClass",
      "description": "Details about storage class.",
      "properties": {
        "type": {
          "description": "Required. Type of the storage class.",
          "enumDescriptions": [
            "Unspecified storage class type.",
            "General Purpose",
            "Represents Intelligent-Tiering's auto-tiering",
            "Standard-Infrequent Access",
            "One Zone-Infrequent Access",
            "S3 Glacier Flexible Retrieval",
            "S3 Glacier Deep Archive",
            "S3 Glacier Instant Retrieval",
            "S3 Reduced Redundancy Storage (Legacy)",
            "S3 Express One Zone"
          ],
          "enum": [
            "STORAGE_CLASS_TYPE_UNSPECIFIED",
            "STANDARD",
            "INTELLIGENT_TIERING",
            "STANDARD_IA",
            "ONE_ZONE_IA",
            "GLACIER",
            "DEEP_ARCHIVE",
            "GLACIER_IR",
            "REDUCED_REDUNDANCY",
            "EXPRESS_ONEZONE"
          ],
          "type": "string"
        },
        "totalBytes": {
          "type": "string",
          "description": "Optional. The total size of the storage class in bytes.",
          "format": "int64"
        }
      },
      "type": "object"
    },
    "ReportSummarySoleTenantFinding": {
      "description": "A set of findings that applies to assets destined for Sole-Tenant nodes.",
      "properties": {
        "allocatedRegions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of regions in which the assets are allocated"
        },
        "nodeAllocations": {
          "description": "Set of per-nodetype allocation records",
          "type": "array",
          "items": {
            "$ref": "ReportSummarySoleTenantNodeAllocation"
          }
        },
        "allocatedAssetCount": {
          "description": "Count of assets which are allocated",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "ReportSummarySoleTenantFinding",
      "type": "object"
    },
    "DatabasePreferencesCloudSqlSqlServer": {
      "description": "Preferences for SQL Server on Cloud SQL.",
      "properties": {
        "versionType": {
          "description": "Optional. Edition of Microsoft SQL version that is used on a Cloud SQL for SQL server instance.",
          "enumDescriptions": [
            "Unspecified SQL Server version type.",
            "Version will be deduced from the source asset.",
            "Version will be one of \"Express\" versions.",
            "Version will be one of \"Web\" versions.",
            "Version will be one of \"Standard\" versions.",
            "Version will be one of \"Enterprise\" versions."
          ],
          "enum": [
            "VERSION_TYPE_UNSPECIFIED",
            "VERSION_TYPE_AUTO",
            "VERSION_TYPE_EXPRESS",
            "VERSION_TYPE_WEB",
            "VERSION_TYPE_STANDARD",
            "VERSION_TYPE_ENTERPRISE"
          ],
          "type": "string"
        },
        "common": {
          "description": "Optional. Preferences to Cloud SQL databases.",
          "$ref": "DatabasePreferencesCloudSqlCommon"
        },
        "multithreading": {
          "type": "string",
          "enum": [
            "MULTITHREADING_UNSPECIFIED",
            "MULTITHREADING_DISABLED",
            "MULTITHREADING_ENABLED",
            "MULTITHREADING_DISABLED_WITH_COMPENSATION"
          ],
          "description": "Optional. Preferences for multithreading support.",
          "enumDescriptions": [
            "Same as MULTITHREADING_AUTO.",
            "Disable simultaneous multithreading.",
            "Enable simultaneous multithreading.",
            "Disable simultaneous multithreading and increase number of VCPUs to compensate."
          ]
        }
      },
      "id": "DatabasePreferencesCloudSqlSqlServer",
      "type": "object"
    },
    "OpenFileList": {
      "description": "Open file list.",
      "properties": {
        "entries": {
          "description": "Open file details entries.",
          "items": {
            "$ref": "OpenFileDetails"
          },
          "type": "array"
        }
      },
      "id": "OpenFileList",
      "type": "object"
    },
    "DailyResourceUsageAggregationStats": {
      "type": "object",
      "description": "Statistical aggregation of samples for a single resource usage.",
      "properties": {
        "median": {
          "type": "number",
          "description": "Median usage value.",
          "format": "float"
        },
        "ninteyFifthPercentile": {
          "description": "95th percentile usage value.",
          "format": "float",
          "type": "number"
        },
        "average": {
          "type": "number",
          "description": "Average usage value.",
          "format": "float"
        },
        "peak": {
          "description": "Peak usage value.",
          "format": "float",
          "type": "number"
        }
      },
      "id": "DailyResourceUsageAggregationStats"
    },
    "CancelOperationRequest": {
      "description": "The request message for Operations.CancelOperation.",
      "properties": {},
      "id": "CancelOperationRequest",
      "type": "object"
    },
    "OperatingSystemPricingPreferences": {
      "type": "object",
      "id": "OperatingSystemPricingPreferences",
      "description": "Pricing options for OS images.",
      "properties": {
        "windows": {
          "description": "Optional. Pricing options for Windows images. No commitment plans are available, set it to unspecified.",
          "$ref": "OperatingSystemPricingPreferencesOperatingSystemPricing"
        },
        "sles": {
          "description": "Optional. Pricing options for SLES images.",
          "$ref": "OperatingSystemPricingPreferencesOperatingSystemPricing"
        },
        "rhel": {
          "description": "Optional. Pricing options for RHEL images.",
          "$ref": "OperatingSystemPricingPreferencesOperatingSystemPricing"
        },
        "slesForSap": {
          "description": "Optional. Pricing options for SLES for SAP images.",
          "$ref": "OperatingSystemPricingPreferencesOperatingSystemPricing"
        }
      }
    },
    "PostgreSqlSetting": {
      "description": "PostgreSql setting.",
      "properties": {
        "source": {
          "type": "string",
          "description": "Required. The setting source."
        },
        "boolValue": {
          "description": "Required. The setting boolean value.",
          "type": "boolean"
        },
        "intValue": {
          "description": "Required. The setting int value.",
          "format": "int64",
          "type": "string"
        },
        "realValue": {
          "description": "Required. The setting real value.",
          "format": "float",
          "type": "number"
        },
        "setting": {
          "description": "Required. The setting name.",
          "type": "string"
        },
        "stringValue": {
          "type": "string",
          "description": "Required. The setting string value. Notice that enum values are stored as strings."
        },
        "unit": {
          "description": "Optional. The setting unit.",
          "type": "string"
        }
      },
      "id": "PostgreSqlSetting",
      "type": "object"
    },
    "ImportError": {
      "description": "A resource that reports the errors encountered while processing an import job.",
      "properties": {
        "errorDetails": {
          "description": "The error information.",
          "type": "string"
        },
        "severity": {
          "description": "The severity of the error.",
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "type": "string",
          "enum": [
            "SEVERITY_UNSPECIFIED",
            "ERROR",
            "WARNING",
            "INFO"
          ]
        }
      },
      "id": "ImportError",
      "type": "object"
    },
    "PreferenceSet": {
      "description": "The preferences that apply to all assets in a given context.",
      "properties": {
        "description": {
          "type": "string",
          "description": "A description of the preference set."
        },
        "updateTime": {
          "type": "string",
          "description": "Output only. The timestamp when the preference set was last updated.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "createTime": {
          "type": "string",
          "description": "Output only. The timestamp when the preference set was created.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "regionPreferences": {
          "description": "Optional. 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. If unspecified, VirtualMachinePreferences.RegionPreferences is used.",
          "$ref": "RegionPreferences"
        },
        "name": {
          "type": "string",
          "description": "Output only. Name of the PreferenceSet.",
          "readOnly": true
        },
        "virtualMachinePreferences": {
          "description": "A set of preferences that applies to all virtual machines in the context.",
          "$ref": "VirtualMachinePreferences"
        },
        "databasePreferences": {
          "description": "Optional. A set of preferences that applies to all databases in the context.",
          "$ref": "DatabasePreferences"
        },
        "displayName": {
          "type": "string",
          "description": "User-friendly display name. Maximum length is 63 characters."
        }
      },
      "id": "PreferenceSet",
      "type": "object"
    },
    "VirtualMachineDetails": {
      "type": "object",
      "id": "VirtualMachineDetails",
      "description": "Details of a VirtualMachine.",
      "properties": {
        "osVersion": {
          "type": "string",
          "description": "The version of the operating system running on the virtual machine."
        },
        "createTime": {
          "type": "string",
          "description": "VM creation timestamp.",
          "format": "google-datetime"
        },
        "vmUuid": {
          "type": "string",
          "description": "Virtual Machine unique identifier."
        },
        "osName": {
          "type": "string",
          "description": "The name of the operating system running on the VirtualMachine."
        },
        "coreCount": {
          "type": "integer",
          "description": "Number of logical CPU cores in the VirtualMachine. Must be non-negative.",
          "format": "int32"
        },
        "vmNetwork": {
          "description": "VM network details.",
          "$ref": "VirtualMachineNetworkDetails"
        },
        "vcenterFolder": {
          "type": "string",
          "description": "Folder name in vCenter where asset resides."
        },
        "memoryMb": {
          "description": "The amount of memory in the VirtualMachine. Must be non-negative.",
          "format": "int32",
          "type": "integer"
        },
        "vmDisks": {
          "description": "VM disk details.",
          "$ref": "VirtualMachineDiskDetails"
        },
        "platform": {
          "description": "Platform information.",
          "$ref": "PlatformDetails"
        },
        "osFamily": {
          "type": "string",
          "enum": [
            "OS_FAMILY_UNKNOWN",
            "OS_FAMILY_WINDOWS",
            "OS_FAMILY_LINUX",
            "OS_FAMILY_UNIX"
          ],
          "description": "What family the OS belong to, if known.",
          "enumDescriptions": [
            "",
            "Microsoft Windows Server and Desktop.",
            "Various Linux flavors.",
            "Non-Linux Unix flavors."
          ]
        },
        "guestOs": {
          "description": "Guest OS information.",
          "$ref": "GuestOsDetails"
        },
        "vmArchitecture": {
          "description": "VM architecture details (vendor, cpu arch).",
          "$ref": "VirtualMachineArchitectureDetails"
        },
        "vmName": {
          "type": "string",
          "description": "Virtual Machine display name."
        },
        "diskPartitions": {
          "description": "Optional. Disk partitions details. Note: Partitions are not necessarily mounted on local disks and therefore might not have a one-to-one correspondence with local disks.",
          "$ref": "DiskPartitionDetails"
        },
        "powerState": {
          "type": "string",
          "description": "Power state of VM (poweredOn or poweredOff)."
        },
        "vcenterUrl": {
          "type": "string",
          "description": "vCenter URL used in collection."
        },
        "vcenterVmId": {
          "description": "vCenter VM ID.",
          "type": "string"
        }
      }
    },
    "VmwareEngineMigrationTarget": {
      "description": "VMWare engine migration target.",
      "properties": {},
      "id": "VmwareEngineMigrationTarget",
      "type": "object"
    },
    "FrameViolationEntry": {
      "description": "A resource that contains a single violation of a reported `AssetFrame` resource.",
      "properties": {
        "violation": {
          "type": "string",
          "description": "A message describing the violation."
        },
        "field": {
          "description": "The field of the original frame where the violation occurred.",
          "type": "string"
        }
      },
      "id": "FrameViolationEntry",
      "type": "object"
    },
    "AssetsExportJobPerformanceData": {
      "type": "object",
      "id": "AssetsExportJobPerformanceData",
      "description": "Configuration for performance data exports.",
      "properties": {
        "maxDays": {
          "type": "integer",
          "description": "Optional. When this value is set to a positive integer, performance data will be returned for the most recent days for which data is available. When this value is unset (or set to zero), all available data is returned. The maximum value is 420; values above 420 will be coerced to 420. If unset (0 value) a default value of 40 will be used.",
          "format": "int32"
        }
      }
    },
    "ErrorFrame": {
      "type": "object",
      "id": "ErrorFrame",
      "description": "Message representing a frame which failed to be processed due to an error.",
      "properties": {
        "ingestionTime": {
          "description": "Output only. Frame ingestion time.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "violations": {
          "description": "Output only. All the violations that were detected for the frame.",
          "readOnly": true,
          "items": {
            "$ref": "FrameViolationEntry"
          },
          "type": "array"
        },
        "name": {
          "description": "Output only. The identifier of the ErrorFrame.",
          "readOnly": true,
          "type": "string"
        },
        "originalFrame": {
          "description": "Output only. The frame that was originally reported.",
          "readOnly": true,
          "$ref": "AssetFrame"
        }
      }
    },
    "ListDiscoveryClientsResponse": {
      "type": "object",
      "description": "Response message for listing discovery clients.",
      "properties": {
        "discoveryClients": {
          "type": "array",
          "items": {
            "$ref": "DiscoveryClient"
          },
          "description": "List of discovery clients."
        },
        "nextPageToken": {
          "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached."
        }
      },
      "id": "ListDiscoveryClientsResponse"
    },
    "ReportSummaryAssetAggregateStats": {
      "description": "Aggregate statistics for a collection of assets.",
      "properties": {
        "storageUtilization": {
          "description": "Total storage split into Used/Free buckets.",
          "deprecated": true,
          "$ref": "ReportSummaryChartData"
        },
        "memoryUtilization": {
          "description": "Total memory split into Used/Free buckets.",
          "deprecated": true,
          "$ref": "ReportSummaryChartData"
        },
        "softwareInstances": {
          "description": "Output only. Count of assets grouped by software name. Only present for virtual machines.",
          "readOnly": true,
          "$ref": "ReportSummaryChartData"
        },
        "storageBytesHistogram": {
          "description": "Histogram showing a distribution of storage sizes.",
          "$ref": "ReportSummaryHistogramChartData"
        },
        "totalStorageBytes": {
          "description": "Sum of persistent storage in bytes of all the assets in this collection.",
          "format": "int64",
          "type": "string"
        },
        "totalCores": {
          "type": "string",
          "description": "Sum of the CPU core count of all the assets in this collection.",
          "format": "int64"
        },
        "memoryBytesHistogram": {
          "description": "Histogram showing a distribution of memory sizes.",
          "$ref": "ReportSummaryHistogramChartData"
        },
        "totalMemoryBytes": {
          "description": "Sum of the memory in bytes of all the assets in this collection.",
          "format": "int64",
          "type": "string"
        },
        "coreCountHistogram": {
          "description": "Histogram showing a distribution of logical CPU core counts.",
          "$ref": "ReportSummaryHistogramChartData"
        },
        "databaseTypes": {
          "description": "Output only. Count of assets grouped by database type. Keys here are taken from DatabaseType enum. Only present for databases.",
          "readOnly": true,
          "$ref": "ReportSummaryChartData"
        },
        "storageUtilizationChart": {
          "description": "Total memory split into Used/Free buckets.",
          "$ref": "ReportSummaryUtilizationChartData"
        },
        "assetAge": {
          "description": "Count of assets grouped by age.",
          "deprecated": true,
          "$ref": "ReportSummaryChartData"
        },
        "operatingSystem": {
          "description": "Count of assets grouped by Operating System families. Only present for virtual machines.",
          "$ref": "ReportSummaryChartData"
        },
        "estimatedUsageStats": {
          "description": "Output only. Estimated usage stats for the assets in this collection.",
          "readOnly": true,
          "$ref": "ReportSummaryAssetAggregateStatsEstimatedUsageStats"
        },
        "totalAssets": {
          "type": "string",
          "description": "Count of the number of unique assets in this collection.",
          "format": "int64"
        },
        "memoryUtilizationChart": {
          "description": "Total memory split into Used/Free buckets.",
          "$ref": "ReportSummaryUtilizationChartData"
        }
      },
      "id": "ReportSummaryAssetAggregateStats",
      "type": "object"
    },
    "PlatformDetails": {
      "description": "Information about the platform.",
      "properties": {
        "physicalDetails": {
          "description": "Physical machines platform details.",
          "$ref": "PhysicalPlatformDetails"
        },
        "azureVmDetails": {
          "description": "Azure VM specific details.",
          "$ref": "AzureVmPlatformDetails"
        },
        "awsEc2Details": {
          "description": "AWS EC2 specific details.",
          "$ref": "AwsEc2PlatformDetails"
        },
        "vmwareDetails": {
          "description": "VMware specific details.",
          "$ref": "VmwarePlatformDetails"
        },
        "genericDetails": {
          "description": "Generic platform details.",
          "$ref": "GenericPlatformDetails"
        }
      },
      "id": "PlatformDetails",
      "type": "object"
    },
    "CsvOutputFile": {
      "description": "Contains a single output file of type CSV.",
      "properties": {
        "rowCount": {
          "type": "integer",
          "description": "Output only. Number of rows in the file.",
          "readOnly": true,
          "format": "int32"
        },
        "signedUri": {
          "description": "Output only. Signed URI destination.",
          "readOnly": true,
          "$ref": "SignedUri"
        },
        "columnsCount": {
          "type": "integer",
          "description": "Output only. Number of columns in the file.",
          "readOnly": true,
          "format": "int32"
        }
      },
      "id": "CsvOutputFile",
      "type": "object"
    },
    "ImportRowErrorCsvErrorDetails": {
      "type": "object",
      "id": "ImportRowErrorCsvErrorDetails",
      "description": "Error details for a CSV file.",
      "properties": {
        "rowNumber": {
          "type": "integer",
          "description": "The row number where the error was detected.",
          "format": "int32"
        }
      }
    },
    "UploadFileInfo": {
      "id": "UploadFileInfo",
      "description": "A resource that contains a URI to which a data file can be uploaded.",
      "properties": {
        "uriExpirationTime": {
          "type": "string",
          "description": "Output only. Expiration time of the upload URI.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "headers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Output only. The headers that were used to sign the URL.",
          "readOnly": true
        },
        "signedUri": {
          "description": "Output only. Upload URI for the file.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "DiskUsageSample": {
      "type": "object",
      "id": "DiskUsageSample",
      "description": "Disk usage sample. Values are across all disks.",
      "properties": {
        "averageIops": {
          "description": "Average IOPS sampled over a short window. Must be non-negative. If read or write are set, the sum of read and write will override the value of the average_iops.",
          "format": "float",
          "type": "number"
        },
        "averageWriteIops": {
          "description": "Average write IOPS sampled over a short window. Must be non-negative. If both read and write are zero they are ignored.",
          "format": "float",
          "type": "number"
        },
        "averageReadIops": {
          "type": "number",
          "description": "Average read IOPS sampled over a short window. Must be non-negative. If both read and write are zero they are ignored.",
          "format": "float"
        }
      }
    },
    "VirtualMachineNetworkDetails": {
      "type": "object",
      "id": "VirtualMachineNetworkDetails",
      "description": "Details of network adapters and settings.",
      "properties": {
        "primaryMacAddress": {
          "type": "string",
          "description": "MAC address of the machine. This property is used to uniqly identify the machine."
        },
        "publicIpAddress": {
          "type": "string",
          "description": "Public IP address of the machine."
        },
        "networkAdapters": {
          "description": "List of network adapters.",
          "$ref": "NetworkAdapterList"
        },
        "defaultGw": {
          "description": "Default gateway address.",
          "type": "string"
        },
        "primaryIpAddress": {
          "type": "string",
          "description": "IP address of the machine."
        }
      }
    },
    "PostgreSqlSchemaDetails": {
      "type": "object",
      "id": "PostgreSqlSchemaDetails",
      "description": "Specific details for a PostgreSql schema.",
      "properties": {
        "foreignTablesCount": {
          "type": "integer",
          "description": "Optional. PostgreSql foreign tables.",
          "format": "int32"
        },
        "postgresqlExtensions": {
          "description": "Optional. PostgreSql extensions.",
          "items": {
            "$ref": "PostgreSqlExtension"
          },
          "type": "array"
        }
      }
    },
    "MachineDetails": {
      "description": "Details of a machine.",
      "properties": {
        "memoryMb": {
          "description": "The amount of memory in the machine. Must be non-negative.",
          "format": "int32",
          "type": "integer"
        },
        "platform": {
          "description": "Platform specific information.",
          "$ref": "PlatformDetails"
        },
        "uuid": {
          "type": "string",
          "description": "Machine unique identifier."
        },
        "network": {
          "description": "Network details.",
          "$ref": "MachineNetworkDetails"
        },
        "powerState": {
          "type": "string",
          "enum": [
            "POWER_STATE_UNSPECIFIED",
            "PENDING",
            "ACTIVE",
            "SUSPENDING",
            "SUSPENDED",
            "DELETING",
            "DELETED"
          ],
          "description": "Power state of the machine.",
          "enumDescriptions": [
            "Power state is unknown.",
            "The machine is preparing to enter the ACTIVE state. An instance may enter the PENDING state when it launches for the first time, or when it is started after being in the SUSPENDED state.",
            "The machine is active.",
            "The machine is being turned off.",
            "The machine is off.",
            "The machine is being deleted from the hosting platform.",
            "The machine is deleted from the hosting platform."
          ]
        },
        "disks": {
          "description": "Disk details.",
          "$ref": "MachineDiskDetails"
        },
        "machineName": {
          "description": "Machine name.",
          "type": "string"
        },
        "diskPartitions": {
          "description": "Optional. Disk partitions details. Note: Partitions are not necessarily mounted on local disks and therefore might not have a one-to-one correspondence with local disks.",
          "$ref": "DiskPartitionDetails"
        },
        "coreCount": {
          "description": "Number of logical CPU cores in the machine. Must be non-negative.",
          "format": "int32",
          "type": "integer"
        },
        "architecture": {
          "description": "Architecture details (vendor, CPU architecture).",
          "$ref": "MachineArchitectureDetails"
        },
        "guestOs": {
          "description": "Guest OS information.",
          "$ref": "GuestOsDetails"
        },
        "createTime": {
          "type": "string",
          "description": "Machine creation time.",
          "format": "google-datetime"
        }
      },
      "id": "MachineDetails",
      "type": "object"
    },
    "AssetsExportJobInventory": {
      "id": "AssetsExportJobInventory",
      "description": "Configuration for asset inventory details exports.",
      "properties": {},
      "type": "object"
    },
    "BiosDetails": {
      "id": "BiosDetails",
      "description": "Details about the BIOS.",
      "properties": {
        "id": {
          "description": "BIOS ID.",
          "type": "string"
        },
        "biosName": {
          "description": "BIOS name.",
          "type": "string"
        },
        "version": {
          "type": "string",
          "description": "BIOS version."
        },
        "biosReleaseDate": {
          "type": "string",
          "description": "BIOS release date."
        },
        "biosVersion": {
          "type": "string",
          "description": "BIOS version."
        },
        "releaseTime": {
          "description": "BIOS release date.",
          "format": "google-datetime",
          "type": "string"
        },
        "biosManufacturer": {
          "description": "BIOS manufacturer.",
          "type": "string"
        },
        "manufacturer": {
          "description": "BIOS manufacturer.",
          "type": "string"
        },
        "smbiosUuid": {
          "type": "string",
          "description": "SMBIOS UUID."
        }
      },
      "type": "object"
    },
    "ReportSummaryHistogramChartData": {
      "type": "object",
      "id": "ReportSummaryHistogramChartData",
      "description": "A Histogram Chart shows a distribution of values into buckets, showing a count of values which fall into a bucket.",
      "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": "ReportSummaryHistogramChartDataBucket"
          },
          "type": "array"
        }
      }
    },
    "CascadingRule": {
      "id": "CascadingRule",
      "description": "Specifies cascading rules for traversing relations.",
      "properties": {
        "cascadeLogicalDbs": {
          "description": "Cascading rule for related logical DBs.",
          "$ref": "CascadeLogicalDBsRule"
        }
      },
      "type": "object"
    },
    "OutputFileList": {
      "type": "object",
      "description": "Contains a list of output files.",
      "properties": {
        "entries": {
          "description": "List of output files.",
          "items": {
            "$ref": "OutputFile"
          },
          "type": "array"
        }
      },
      "id": "OutputFileList"
    },
    "BatchDeleteAssetsRequest": {
      "id": "BatchDeleteAssetsRequest",
      "description": "A request to delete a list of asset.",
      "properties": {
        "allowMissing": {
          "type": "boolean",
          "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`."
        },
        "names": {
          "description": "Required. The IDs of the assets to delete. A maximum of 1000 assets can be deleted in a batch. Format: projects/{project}/locations/{location}/assets/{name}.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "cascadingRules": {
          "description": "Optional. Optional cascading rules for deleting related assets.",
          "type": "array",
          "items": {
            "$ref": "CascadingRule"
          }
        }
      },
      "type": "object"
    },
    "RunImportJobRequest": {
      "description": "A request to run an import job.",
      "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"
        }
      },
      "id": "RunImportJobRequest",
      "type": "object"
    },
    "AwsEcsClusterDetails": {
      "type": "object",
      "description": "Details of an AWS ECS cluster.",
      "properties": {},
      "id": "AwsEcsClusterDetails"
    },
    "AggregationResultFrequency": {
      "description": "The result of a frequency distribution aggregation.",
      "properties": {
        "values": {
          "type": "object",
          "additionalProperties": {
            "format": "int64",
            "type": "string"
          }
        }
      },
      "id": "AggregationResultFrequency",
      "type": "object"
    },
    "NetworkConnectionList": {
      "id": "NetworkConnectionList",
      "description": "Network connection list.",
      "properties": {
        "entries": {
          "description": "Network connection entries.",
          "type": "array",
          "items": {
            "$ref": "NetworkConnection"
          }
        }
      },
      "type": "object"
    },
    "MySqlStorageEngineDetails": {
      "description": "Mysql storage engine tables.",
      "properties": {
        "engine": {
          "description": "Required. The storage engine.",
          "enumDescriptions": [
            "Unspecified storage engine.",
            "InnoDB.",
            "MyISAM.",
            "Memory.",
            "CSV.",
            "Archive.",
            "Blackhole.",
            "NDB.",
            "Merge.",
            "Federated.",
            "Example.",
            "Other."
          ],
          "type": "string",
          "enum": [
            "ENGINE_UNSPECIFIED",
            "INNODB",
            "MYISAM",
            "MEMORY",
            "CSV",
            "ARCHIVE",
            "BLACKHOLE",
            "NDB",
            "MERGE",
            "FEDERATED",
            "EXAMPLE",
            "OTHER"
          ]
        },
        "tableCount": {
          "description": "Optional. The number of tables.",
          "format": "int32",
          "type": "integer"
        },
        "encryptedTableCount": {
          "description": "Optional. The number of encrypted tables.",
          "format": "int32",
          "type": "integer"
        }
      },
      "id": "MySqlStorageEngineDetails",
      "type": "object"
    },
    "SqlServerDatabaseDeployment": {
      "type": "object",
      "id": "SqlServerDatabaseDeployment",
      "description": "Specific details for a Microsoft SQL Server database deployment.",
      "properties": {
        "serverFlags": {
          "items": {
            "$ref": "SqlServerServerFlag"
          },
          "type": "array",
          "description": "Optional. List of SQL Server server flags."
        },
        "features": {
          "description": "Optional. List of SQL Server features.",
          "type": "array",
          "items": {
            "$ref": "SqlServerFeature"
          }
        },
        "traceFlags": {
          "items": {
            "$ref": "SqlServerTraceFlag"
          },
          "type": "array",
          "description": "Optional. List of SQL Server trace flags."
        }
      }
    },
    "NfsExportList": {
      "id": "NfsExportList",
      "description": "NFS exports.",
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "NfsExport"
          },
          "description": "NFS export entries."
        }
      },
      "type": "object"
    },
    "Source": {
      "description": "Source represents an object from which asset information is streamed to Migration Center.",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "User-friendly display name."
        },
        "type": {
          "description": "Data source type.",
          "enumDescriptions": [
            "Unspecified",
            "Manually uploaded file (e.g. CSV)",
            "Guest-level info",
            "Inventory-level scan",
            "Third-party owned sources.",
            "Discovery clients"
          ],
          "type": "string",
          "enum": [
            "SOURCE_TYPE_UNKNOWN",
            "SOURCE_TYPE_UPLOAD",
            "SOURCE_TYPE_GUEST_OS_SCAN",
            "SOURCE_TYPE_INVENTORY_SCAN",
            "SOURCE_TYPE_CUSTOM",
            "SOURCE_TYPE_DISCOVERY_CLIENT"
          ]
        },
        "pendingFrameCount": {
          "description": "Output only. Number of frames that are still being processed.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "isManaged": {
          "type": "boolean",
          "description": "If `true`, the source is managed by other service(s)."
        },
        "createTime": {
          "type": "string",
          "description": "Output only. The timestamp when the source was created.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "priority": {
          "type": "integer",
          "description": "The information confidence of the source. The higher the value, the higher the confidence.",
          "format": "int32"
        },
        "name": {
          "description": "Output only. The full name of the source.",
          "readOnly": true,
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Free-text description."
        },
        "errorFrameCount": {
          "description": "Output only. The number of frames that were reported by the source and contained errors.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "state": {
          "description": "Output only. The state of the source.",
          "readOnly": true,
          "enumDescriptions": [
            "Unspecified.",
            "The source is active and ready to be used.",
            "In the process of being deleted.",
            "Source is in an invalid state. Asset frames reported to it will be ignored."
          ],
          "type": "string",
          "enum": [
            "STATE_UNSPECIFIED",
            "ACTIVE",
            "DELETING",
            "INVALID"
          ]
        },
        "updateTime": {
          "type": "string",
          "description": "Output only. The timestamp when the source was last updated.",
          "readOnly": true,
          "format": "google-datetime"
        }
      },
      "id": "Source",
      "type": "object"
    },
    "ReportSummaryGroupPreferenceSetFinding": {
      "type": "object",
      "description": "Summary Findings for a specific Group/PreferenceSet combination.",
      "properties": {
        "displayName": {
          "description": "Display Name of the Preference Set",
          "type": "string"
        },
        "monthlyCostPortableVmwareLicense": {
          "description": "Output only. VMware portable license monthly cost for this preference set. Only present for VMware target with portable license service type. This cost is not paid to google, but is an estimate of license costs paid to VMware.",
          "readOnly": true,
          "$ref": "Money"
        },
        "monthlyCostOsLicense": {
          "description": "Output only. All operating systems licensing monthly cost for this preference set. Only present for virtual machines.",
          "readOnly": true,
          "$ref": "Money"
        },
        "preferenceSet": {
          "description": "Output only. A copy of the preference set used for this finding.",
          "readOnly": true,
          "$ref": "PreferenceSet"
        },
        "vmwareEngineFinding": {
          "description": "A set of findings that applies to VMWare machines in the input. Only present for virtual machines.",
          "$ref": "ReportSummaryVMWareEngineFinding"
        },
        "preferredRegion": {
          "type": "string",
          "description": "Target region for this Preference Set",
          "deprecated": true
        },
        "machinePreferences": {
          "description": "A set of preferences that applies to all machines in the context.",
          "$ref": "VirtualMachinePreferences"
        },
        "monthlyCostGcveProtected": {
          "description": "Output only. GCVE Protected nodes cost for this preference set.",
          "readOnly": true,
          "$ref": "Money"
        },
        "databaseFinding": {
          "description": "Output only. Details about databases in this finding. Only present for databases.",
          "readOnly": true,
          "$ref": "ReportSummaryDatabaseFinding"
        },
        "monthlyCostStorage": {
          "description": "Output only. Storage monthly cost for this preference set.",
          "readOnly": true,
          "$ref": "Money"
        },
        "monthlyCostCompute": {
          "description": "Output only. Compute monthly cost for this preference set.",
          "readOnly": true,
          "$ref": "Money"
        },
        "monthlyCostNetworkEgress": {
          "description": "Output only. Network Egress monthly cost for this preference set. Only present for virtual machines.",
          "readOnly": true,
          "$ref": "Money"
        },
        "monthlyCostOther": {
          "description": "Output only. Miscellaneous monthly cost for this preference set.",
          "readOnly": true,
          "$ref": "Money"
        },
        "topPriority": {
          "description": "Text describing the business priority specified for this Preference Set",
          "deprecated": true,
          "type": "string"
        },
        "monthlyCostDatabaseLicensing": {
          "description": "Output only. Database licensing monthly cost for this preference set. Only present for databases.",
          "readOnly": true,
          "$ref": "Money"
        },
        "monthlyCostTotal": {
          "description": "Output only. Total monthly cost for this preference set.",
          "readOnly": true,
          "$ref": "Money"
        },
        "monthlyCostDatabaseBackup": {
          "description": "Output only. Backup monthly cost for this preference set. Only present for databases.",
          "readOnly": true,
          "$ref": "Money"
        },
        "machineFinding": {
          "description": "Output only. A set of findings that applies to all virtual machines in the input. Only present for virtual machines.",
          "readOnly": true,
          "$ref": "ReportSummaryMachineFinding"
        },
        "soleTenantFinding": {
          "description": "A set of findings that applies to Stole-Tenant machines in the input. Only present for virtual machines.",
          "$ref": "ReportSummarySoleTenantFinding"
        },
        "description": {
          "type": "string",
          "description": "Description for the Preference Set."
        },
        "pricingTrack": {
          "type": "string",
          "description": "Text describing the pricing track specified for this Preference Set",
          "deprecated": true
        }
      },
      "id": "ReportSummaryGroupPreferenceSetFinding"
    },
    "ComputeEngineShapeDescriptor": {
      "type": "object",
      "description": "Compute Engine target shape descriptor.",
      "properties": {
        "physicalCoreCount": {
          "description": "Output only. Number of physical cores.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "series": {
          "description": "Output only. Compute Engine machine series.",
          "readOnly": true,
          "type": "string"
        },
        "smtEnabled": {
          "description": "Output only. Whether simultaneous multithreading is enabled. See https://cloud.google.com/compute/docs/instances/set-threads-per-core.",
          "readOnly": true,
          "type": "boolean"
        },
        "memoryMb": {
          "type": "integer",
          "description": "Output only. Memory in mebibytes.",
          "readOnly": true,
          "format": "int32"
        },
        "logicalCoreCount": {
          "type": "integer",
          "description": "Output only. Number of logical cores.",
          "readOnly": true,
          "format": "int32"
        },
        "storage": {
          "type": "array",
          "items": {
            "$ref": "ComputeStorageDescriptor"
          },
          "description": "Output only. Compute Engine storage. Never empty.",
          "readOnly": true
        },
        "machineType": {
          "type": "string",
          "description": "Output only. Compute Engine machine type.",
          "readOnly": true
        }
      },
      "id": "ComputeEngineShapeDescriptor"
    },
    "AwsEbsVolumeDetails": {
      "type": "object",
      "id": "AwsEbsVolumeDetails",
      "description": "Asset information specific for AWS EBS Volumes.",
      "properties": {}
    },
    "RunAssetsExportJobResponse": {
      "type": "object",
      "description": "Response message for running an assets export job.",
      "properties": {
        "assetsExportJobExecution": {
          "description": "Output only. Execution status of the assets export operation.",
          "readOnly": true,
          "$ref": "AssetsExportJobExecution"
        }
      },
      "id": "RunAssetsExportJobResponse"
    },
    "AwsEcrRepositoryDetails": {
      "description": "Asset information specific for AWS ECR Repository.",
      "properties": {},
      "id": "AwsEcrRepositoryDetails",
      "type": "object"
    },
    "AggregationCount": {
      "id": "AggregationCount",
      "description": "Object count.",
      "properties": {},
      "type": "object"
    },
    "ReportSummaryAssetAggregateStatsEstimatedUsageStats": {
      "description": "Estimated usage stats for the assets in this collection.",
      "properties": {
        "totalVirtualMachinesUsingEstimatedUsage": {
          "description": "Output only. The number of virtual machines in this finding that are using at least one estimated usage metric for rightsizing.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "totalAssetsUsingEstimatedUsage": {
          "type": "string",
          "description": "Output only. The number of assets that are using at least one estimated usage metric for rightsizing.",
          "readOnly": true,
          "format": "int64"
        }
      },
      "id": "ReportSummaryAssetAggregateStatsEstimatedUsageStats",
      "type": "object"
    },
    "DailyResourceUsageAggregationMemory": {
      "type": "object",
      "id": "DailyResourceUsageAggregationMemory",
      "description": "Statistical aggregation of memory usage.",
      "properties": {
        "utilizationPercentage": {
          "description": "Memory utilization percentage.",
          "$ref": "DailyResourceUsageAggregationStats"
        }
      }
    },
    "AwsS3BucketDetailsVersioning": {
      "id": "AwsS3BucketDetailsVersioning",
      "description": "Versioning configuration of the bucket.",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Optional. Whether versioning is enabled."
        }
      },
      "type": "object"
    },
    "AwsElbLoadBalancerDetails": {
      "type": "object",
      "id": "AwsElbLoadBalancerDetails",
      "description": "Asset information specific for AWS Load Balancers.",
      "properties": {}
    },
    "ReportConfigGroupPreferenceSetAssignment": {
      "type": "object",
      "description": "Represents a combination of a group with a preference set.",
      "properties": {
        "group": {
          "type": "string",
          "description": "Required. Name of the group."
        },
        "preferenceSet": {
          "type": "string",
          "description": "Required. Name of the Preference Set."
        }
      },
      "id": "ReportConfigGroupPreferenceSetAssignment"
    },
    "ImportJob": {
      "type": "object",
      "id": "ImportJob",
      "description": "A resource that represents the background job that imports asset frames.",
      "properties": {
        "executionReport": {
          "description": "Output only. The report with the results of running the import job.",
          "readOnly": true,
          "$ref": "ExecutionReport"
        },
        "createTime": {
          "type": "string",
          "description": "Output only. The timestamp when the import job was created.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "name": {
          "description": "Output only. The full name of the import job.",
          "readOnly": true,
          "type": "string"
        },
        "state": {
          "readOnly": true,
          "enumDescriptions": [
            "Default value.",
            "The import job is pending.",
            "The processing of the import job is ongoing.",
            "The import job processing has completed.",
            "The import job failed to be processed.",
            "The import job is being validated.",
            "The import job contains blocking errors.",
            "The validation of the job completed with no blocking errors."
          ],
          "type": "string",
          "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"
          ],
          "description": "Output only. The state of the import job."
        },
        "updateTime": {
          "description": "Output only. The timestamp when the import job was last updated.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "gcsPayload": {
          "description": "The payload is in Google Cloud Storage.",
          "deprecated": true,
          "$ref": "GCSPayloadInfo"
        },
        "displayName": {
          "type": "string",
          "description": "User-friendly display name. Maximum length is 63 characters."
        },
        "labels": {
          "description": "Labels as key value pairs.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "inlinePayload": {
          "description": "The payload is included in the request, mainly used for small import jobs.",
          "$ref": "InlinePayloadInfo"
        },
        "completeTime": {
          "type": "string",
          "description": "Output only. The timestamp when the import job was completed.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "validationReport": {
          "description": "Output only. The report with the validation results of the import job.",
          "readOnly": true,
          "$ref": "ValidationReport"
        },
        "assetSource": {
          "type": "string",
          "description": "Required. Reference to a source."
        }
      }
    },
    "OperationMetadata": {
      "id": "OperationMetadata",
      "description": "Represents the metadata of the long-running operation.",
      "properties": {
        "createTime": {
          "description": "Output only. The time the operation was created.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "requestedCancellation": {
          "type": "boolean",
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
          "readOnly": true
        },
        "endTime": {
          "description": "Output only. The time the operation finished running.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "verb": {
          "description": "Output only. Name of the verb executed by the operation.",
          "readOnly": true,
          "type": "string"
        },
        "statusMessage": {
          "type": "string",
          "description": "Output only. Human-readable status of the operation, if any.",
          "readOnly": true
        },
        "target": {
          "type": "string",
          "description": "Output only. Server-defined resource path for the target of the operation.",
          "readOnly": true
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "GenericInsight": {
      "id": "GenericInsight",
      "description": "A generic insight about an asset.",
      "properties": {
        "messageId": {
          "description": "Output only. Represents a globally unique message id for this insight, can be used for localization purposes, in case message_code is not yet known by the client use default_message instead.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "defaultMessage": {
          "type": "string",
          "description": "Output only. In case message_code is not yet known by the client default_message will be the message to be used instead. Text can contain md file style links.",
          "readOnly": true
        },
        "additionalInformation": {
          "description": "Output only. Additional information about the insight, each entry can be a logical entry and must make sense if it is displayed with line breaks between each entry. Text can contain md style links.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "MySqlSchemaDetails": {
      "description": "Specific details for a Mysql database.",
      "properties": {
        "storageEngines": {
          "type": "array",
          "items": {
            "$ref": "MySqlStorageEngineDetails"
          },
          "description": "Optional. Mysql storage engine tables."
        }
      },
      "id": "MySqlSchemaDetails",
      "type": "object"
    },
    "CloudSqlForSqlServerShape": {
      "id": "CloudSqlForSqlServerShape",
      "description": "Cloud SQL for SQL Server database shape.",
      "properties": {
        "zoneAvailability": {
          "description": "Output only. Cloud SQL zone availability.",
          "readOnly": true,
          "enumDescriptions": [
            "An unspecified Cloud SQL zone availability.",
            "The instance serves data from only one zone. In case of outage, no failover. Not recommended for production.",
            "The instance can serve data from multiple zones in a region. Highly available. Automatic failover to another zone within your selected region. Recommended for production instances. Increases cost."
          ],
          "enum": [
            "CLOUD_SQL_ZONE_AVAILABILITY_UNSPECIFIED",
            "CLOUD_SQL_ZONE_AVAILABILITY_ZONAL",
            "CLOUD_SQL_ZONE_AVAILABILITY_REGIONAL"
          ],
          "type": "string"
        },
        "smtEnabled": {
          "description": "Output only. Whether simultaneous multithreading is enabled (see https://cloud.google.com/sql/docs/sqlserver/create-instance#smt-create-instance).",
          "readOnly": true,
          "type": "boolean"
        },
        "memoryMb": {
          "description": "Output only. Predicted amount of memory in MiB.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "backupStorageGb": {
          "description": "Output only. Predicted backup storage size in GiB.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "egressGbPerMonth": {
          "type": "string",
          "description": "Output only. Predicted Network Out traffic GiB per month.",
          "readOnly": true,
          "format": "int64"
        },
        "edition": {
          "type": "string",
          "enum": [
            "CLOUD_SQL_EDITION_UNSPECIFIED",
            "CLOUD_SQL_EDITION_ENTERPRISE",
            "CLOUD_SQL_EDITION_ENTERPRISE_PLUS"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "An unspecified Cloud SQL edition.",
            "Provides all core capabilities of Cloud SQL and is suitable for applications requiring a balance of performance, availability, and cost.",
            "Provides the best performance and availability to run applications requiring the highest level of availability and performance in addition to the capabilities of the Cloud SQL Enterprise edition. Note: SQL Server is not available in Enterprise Plus edition. For SQL Server, Enterprise will always be recommended."
          ],
          "description": "Output only. Cloud SQL edition."
        },
        "logicalCoreCount": {
          "type": "integer",
          "description": "Output only. Number of logical cores.",
          "readOnly": true,
          "format": "int32"
        },
        "storage": {
          "description": "Output only. Predicted storage shape.",
          "readOnly": true,
          "$ref": "ComputeStorageDescriptor"
        },
        "version": {
          "description": "Output only. Microsoft SQL Server version to be used on the Cloud SQL for SQL server instance.",
          "type": "string",
          "enum": [
            "SQL_SERVER_VERSION_UNSPECIFIED",
            "SQL_SERVER_VERSION_2017_EXPRESS",
            "SQL_SERVER_VERSION_2017_WEB",
            "SQL_SERVER_VERSION_2017_STANDARD",
            "SQL_SERVER_VERSION_2017_ENTERPRISE",
            "SQL_SERVER_VERSION_2019_EXPRESS",
            "SQL_SERVER_VERSION_2019_WEB",
            "SQL_SERVER_VERSION_2019_STANDARD",
            "SQL_SERVER_VERSION_2019_ENTERPRISE",
            "SQL_SERVER_VERSION_2022_EXPRESS",
            "SQL_SERVER_VERSION_2022_WEB",
            "SQL_SERVER_VERSION_2022_STANDARD",
            "SQL_SERVER_VERSION_2022_ENTERPRISE"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "Unspecified SQL Server version.",
            "The database version is SQL Server 2017 Express.",
            "The database version is SQL Server 2017 Web.",
            "The database version is SQL Server 2017 Standard.",
            "The database version is SQL Server 2017 Enterprise.",
            "The database version is SQL Server 2019 Express.",
            "The database version is SQL Server 2019 Web.",
            "The database version is SQL Server 2019 Standard.",
            "The database version is SQL Server 2019 Enterprise.",
            "The database version is SQL Server 2022 Express.",
            "The database version is SQL Server 2022 Web.",
            "The database version is SQL Server 2022 Standard.",
            "The database version is SQL Server 2022 Enterprise."
          ]
        }
      },
      "type": "object"
    },
    "HostingProviderDetailsAws": {
      "id": "HostingProviderDetailsAws",
      "description": "Details for AWS platform.",
      "properties": {
        "owningAccountId": {
          "type": "string",
          "description": "Optional. The AWS account ID owning the resource represented by this asset."
        }
      },
      "type": "object"
    },
    "ComputeEnginePreferences": {
      "id": "ComputeEnginePreferences",
      "description": "The user preferences relating to Compute Engine target platform.",
      "properties": {
        "persistentDiskType": {
          "description": "Persistent disk type to use. If unspecified (default), all types are considered, based on available usage data.",
          "enumDescriptions": [
            "Unspecified. Fallback to default value based on context.",
            "Standard HDD Persistent Disk.",
            "Balanced Persistent Disk.",
            "SSD Persistent Disk."
          ],
          "enum": [
            "PERSISTENT_DISK_TYPE_UNSPECIFIED",
            "PERSISTENT_DISK_TYPE_STANDARD",
            "PERSISTENT_DISK_TYPE_BALANCED",
            "PERSISTENT_DISK_TYPE_SSD"
          ],
          "type": "string"
        },
        "multithreading": {
          "description": "Optional. Preferences for multithreading support on Windows Server.",
          "enumDescriptions": [
            "Same as MULTITHREADING_AUTO.",
            "Disable simultaneous multithreading.",
            "Enable simultaneous multithreading.",
            "Disable simultaneous multithreading and increase number of VCPUs to compensate."
          ],
          "type": "string",
          "enum": [
            "MULTITHREADING_UNSPECIFIED",
            "MULTITHREADING_DISABLED",
            "MULTITHREADING_ENABLED",
            "MULTITHREADING_DISABLED_WITH_COMPENSATION"
          ]
        },
        "machinePreferences": {
          "description": "Preferences concerning the machine types to consider on Compute Engine.",
          "$ref": "MachinePreferences"
        },
        "osPricingPreferences": {
          "description": "Optional. Pricing options for OS images.",
          "$ref": "OperatingSystemPricingPreferences"
        },
        "licenseType": {
          "description": "License type to consider when calculating costs for operating systems. If unspecified, costs are calculated based on the default licensing plan. If os_pricing_preferences is specified, it overrides this field.",
          "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 license."
          ],
          "type": "string",
          "enum": [
            "LICENSE_TYPE_UNSPECIFIED",
            "LICENSE_TYPE_DEFAULT",
            "LICENSE_TYPE_BRING_YOUR_OWN_LICENSE"
          ]
        }
      },
      "type": "object"
    },
    "ComputeEngineSoleTenantMigrationTarget": {
      "description": "Compute engine sole tenant migration target.",
      "properties": {},
      "id": "ComputeEngineSoleTenantMigrationTarget",
      "type": "object"
    },
    "AwsEksClusterDetails": {
      "type": "object",
      "description": "Asset information specific for AWS EKS clusters.",
      "properties": {},
      "id": "AwsEksClusterDetails"
    },
    "VirtualMachineArchitectureDetails": {
      "description": "Details of the VM architecture.",
      "properties": {
        "cpuManufacturer": {
          "type": "string",
          "description": "CPU manufacturer, e.g., \"Intel\", \"AMD\"."
        },
        "cpuThreadCount": {
          "type": "integer",
          "description": "Deprecated: use VirtualMachineDetails.core_count instead. Number of CPU threads allocated to the machine.",
          "deprecated": true,
          "format": "int32"
        },
        "cpuSocketCount": {
          "description": "Number of processor sockets allocated to the machine.",
          "format": "int32",
          "type": "integer"
        },
        "firmware": {
          "description": "Firmware (BIOS/efi).",
          "type": "string"
        },
        "cpuArchitecture": {
          "type": "string",
          "description": "CPU architecture, e.g., \"x64-based PC\", \"x86_64\", \"i686\" etc."
        },
        "vendor": {
          "type": "string",
          "description": "Hardware vendor."
        },
        "hyperthreading": {
          "enum": [
            "HYPER_THREADING_UNSPECIFIED",
            "HYPER_THREADING_DISABLED",
            "HYPER_THREADING_ENABLED"
          ],
          "type": "string",
          "description": "CPU hyperthreading support.",
          "enumDescriptions": [
            "Unknown (default value).",
            "Hyperthreading is disabled.",
            "Hyperthreading is enabled."
          ]
        },
        "cpuName": {
          "description": "CPU name, e.g., \"Intel Xeon E5-2690\", \"AMD EPYC 7571\" etc.",
          "type": "string"
        },
        "bios": {
          "description": "BIOS Details.",
          "$ref": "BiosDetails"
        }
      },
      "id": "VirtualMachineArchitectureDetails",
      "type": "object"
    },
    "GenericPlatformDetails": {
      "type": "object",
      "id": "GenericPlatformDetails",
      "description": "Generic platform details.",
      "properties": {
        "location": {
          "type": "string",
          "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."
        },
        "hyperthreading": {
          "description": "Whether the machine is hyperthreaded.",
          "enumDescriptions": [
            "Simultaneous Multithreading status unknown.",
            "Simultaneous Multithreading is disabled or unavailable.",
            "Simultaneous Multithreading is enabled."
          ],
          "type": "string",
          "enum": [
            "HYPERTHREADING_STATUS_UNSPECIFIED",
            "HYPERTHREADING_STATUS_DISABLED",
            "HYPERTHREADING_STATUS_ENABLED"
          ]
        }
      }
    },
    "AwsElastiCacheClusterDetails": {
      "description": "Details of an AWS ElastiCache Cluster.",
      "properties": {},
      "id": "AwsElastiCacheClusterDetails",
      "type": "object"
    },
    "AssetsExportJobExecutionResult": {
      "description": "Contains the result of the assets export.",
      "properties": {
        "error": {
          "description": "Output only. Error encountered during export.",
          "readOnly": true,
          "$ref": "Status"
        },
        "signedUris": {
          "description": "Output only. Signed URLs for downloading export artifacts.",
          "readOnly": true,
          "$ref": "SignedUris"
        },
        "outputFiles": {
          "description": "Output only. List of output files.",
          "readOnly": true,
          "$ref": "OutputFileList"
        }
      },
      "id": "AssetsExportJobExecutionResult",
      "type": "object"
    },
    "PerformanceSample": {
      "id": "PerformanceSample",
      "description": "Performance data sample.",
      "properties": {
        "sampleTime": {
          "type": "string",
          "description": "Time the sample was collected. If omitted, the frame report time will be used.",
          "format": "google-datetime"
        },
        "cpu": {
          "description": "CPU usage sample.",
          "$ref": "CpuUsageSample"
        },
        "memory": {
          "description": "Memory usage sample.",
          "$ref": "MemoryUsageSample"
        },
        "disk": {
          "description": "Disk usage sample.",
          "$ref": "DiskUsageSample"
        },
        "network": {
          "description": "Network usage sample.",
          "$ref": "NetworkUsageSample"
        }
      },
      "type": "object"
    },
    "NetworkUsageSample": {
      "id": "NetworkUsageSample",
      "description": "Network usage sample. Values are across all network interfaces.",
      "properties": {
        "averageIngressBps": {
          "description": "Average network ingress in B/s sampled over a short window. Must be non-negative.",
          "format": "float",
          "type": "number"
        },
        "averageEgressBps": {
          "description": "Average network egress in B/s sampled over a short window. Must be non-negative.",
          "format": "float",
          "type": "number"
        }
      },
      "type": "object"
    },
    "ReportSummary": {
      "id": "ReportSummary",
      "description": "Describes the Summary view of a Report, which contains aggregated values for all the groups and preference sets included in this Report.",
      "properties": {
        "groupFindings": {
          "description": "Findings for each Group included in this report.",
          "type": "array",
          "items": {
            "$ref": "ReportSummaryGroupFinding"
          }
        },
        "databaseStats": {
          "description": "Output only. Aggregate statistics for unique database assets across all the groups.",
          "readOnly": true,
          "$ref": "ReportSummaryAssetAggregateStats"
        },
        "virtualMachineStats": {
          "description": "Output only. Aggregate statistics for unique virtual machine assets across all the groups.",
          "readOnly": true,
          "$ref": "ReportSummaryAssetAggregateStats"
        },
        "allAssetsStats": {
          "description": "Aggregate statistics for unique assets across all the groups.",
          "$ref": "ReportSummaryAssetAggregateStats"
        }
      },
      "type": "object"
    },
    "AwsFirehoseDetails": {
      "type": "object",
      "description": "Contains details for an AWS Firehose asset.",
      "properties": {},
      "id": "AwsFirehoseDetails"
    },
    "ImportRowErrorXlsxErrorDetails": {
      "type": "object",
      "id": "ImportRowErrorXlsxErrorDetails",
      "description": "Error details for an XLSX file.",
      "properties": {
        "sheet": {
          "type": "string",
          "description": "The name of the sheet where the error was detected."
        },
        "rowNumber": {
          "description": "The row number where the error was detected.",
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "OutputFile": {
      "id": "OutputFile",
      "description": "Contains a single output file.",
      "properties": {
        "csvOutputFile": {
          "description": "Output only. CSV output file.",
          "readOnly": true,
          "$ref": "CsvOutputFile"
        },
        "fileSizeBytes": {
          "description": "Output only. File size in bytes.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "xlsxOutputFile": {
          "description": "Output only. XLSX output file.",
          "readOnly": true,
          "$ref": "XlsxOutputFile"
        }
      },
      "type": "object"
    },
    "MachineSeries": {
      "type": "object",
      "description": "A machine series, for a target product (e.g. Compute Engine, Google Cloud VMware Engine).",
      "properties": {
        "code": {
          "type": "string",
          "description": "Code to identify a machine series. Consult this for more details on the available series for Compute Engine: https://cloud.google.com/compute/docs/machine-resource#machine_type_comparison Consult this for more details on the available series for Google Cloud VMware Engine: https://cloud.google.com/vmware-engine/pricing"
        }
      },
      "id": "MachineSeries"
    },
    "GuestConfigDetails": {
      "id": "GuestConfigDetails",
      "description": "Guest OS config information.",
      "properties": {
        "nfsExports": {
          "description": "NFS exports.",
          "$ref": "NfsExportList"
        },
        "fstab": {
          "description": "Mount list (Linux fstab).",
          "$ref": "FstabEntryList"
        },
        "hosts": {
          "description": "Output only. Hosts file (/etc/hosts).",
          "readOnly": true,
          "$ref": "HostsEntryList"
        },
        "selinux": {
          "description": "SELinux details.",
          "$ref": "Selinux"
        },
        "issue": {
          "type": "string",
          "description": "OS issue (typically /etc/issue in Linux)."
        },
        "selinuxMode": {
          "enum": [
            "SE_LINUX_MODE_UNSPECIFIED",
            "SE_LINUX_MODE_DISABLED",
            "SE_LINUX_MODE_PERMISSIVE",
            "SE_LINUX_MODE_ENFORCING"
          ],
          "type": "string",
          "description": "Security-Enhanced Linux (SELinux) mode.",
          "enumDescriptions": [
            "SELinux mode unknown or unspecified.",
            "SELinux is disabled.",
            "SELinux permissive mode.",
            "SELinux enforcing mode."
          ]
        }
      },
      "type": "object"
    },
    "MachineDiskDetails": {
      "type": "object",
      "id": "MachineDiskDetails",
      "description": "Details of machine disks.",
      "properties": {
        "totalFreeBytes": {
          "description": "Total disk free space.",
          "format": "int64",
          "type": "string"
        },
        "disks": {
          "description": "List of disks.",
          "$ref": "DiskEntryList"
        },
        "totalCapacityBytes": {
          "type": "string",
          "description": "Disk total Capacity.",
          "format": "int64"
        },
        "rawScanResult": {
          "description": "Raw disk scan result. This field is intended for human inspection. The format of this field may be lsblk output or any another raw output. The exact format may change without notice and should not be relied upon.",
          "type": "string"
        }
      }
    },
    "AggregationResultHistogramBucket": {
      "id": "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.",
      "properties": {
        "upperBound": {
          "type": "number",
          "description": "Upper bound - exclusive.",
          "format": "double"
        },
        "count": {
          "type": "string",
          "description": "Count of items in the bucket.",
          "format": "int64"
        },
        "lowerBound": {
          "description": "Lower bound - inclusive.",
          "format": "double",
          "type": "number"
        }
      },
      "type": "object"
    },
    "AggregateAssetsValuesResponse": {
      "type": "object",
      "id": "AggregateAssetsValuesResponse",
      "description": "A response to a request to aggregated assets values.",
      "properties": {
        "results": {
          "description": "The aggregation results.",
          "type": "array",
          "items": {
            "$ref": "AggregationResult"
          }
        }
      }
    },
    "EstimatedUsage": {
      "type": "object",
      "description": "Estimated usage data.",
      "properties": {
        "estimatedMemoryPercentage": {
          "description": "Optional. Estimated memory utilization percentage. Must be in the range [1, 100].",
          "format": "float",
          "type": "number"
        },
        "estimatedDiskPercentage": {
          "type": "number",
          "description": "Optional. Estimated disk utilization percentage. Must be in the range [1, 100].",
          "format": "float"
        },
        "estimatedCpuPercentage": {
          "description": "Optional. Estimated CPU utilization percentage. Must be in the range [1, 100].",
          "format": "float",
          "type": "number"
        }
      },
      "id": "EstimatedUsage"
    },
    "VMwareEngineMachinePreferences": {
      "id": "VMwareEngineMachinePreferences",
      "description": "The type of machines to consider when calculating virtual machine migration insights and recommendations for VMware Engine. Not all machine types are available in all zones and regions.",
      "properties": {
        "storageOnlyNodes": {
          "enum": [
            "STORAGE_ONLY_NODES_UNSPECIFIED",
            "STORAGE_ONLY_NODES_ENABLED",
            "STORAGE_ONLY_NODES_DISABLED"
          ],
          "type": "string",
          "description": "Optional. Whether to use storage-only nodes, if those are available.",
          "enumDescriptions": [
            "Unspecified storage-only nodes preference.",
            "Use storage-only nodes for selected allowed_machine_series, if available.",
            "Do not use storage-only nodes."
          ]
        },
        "allowedMachineSeries": {
          "description": "Optional. VMware Engine on Google Cloud machine series to consider for insights and recommendations. If empty, no restriction is applied on the machine series.",
          "type": "array",
          "items": {
            "$ref": "MachineSeries"
          }
        },
        "protectedNodes": {
          "description": "Optional. Whether to use VMware Engine Protected offering.",
          "enumDescriptions": [
            "Unspecified protected nodes preference.",
            "Use only protected nodes for the selected allowed_machine_series.",
            "Do not use protected nodes."
          ],
          "type": "string",
          "enum": [
            "PROTECTED_NODES_UNSPECIFIED",
            "PROTECTED_NODES_ENABLED",
            "PROTECTED_NODES_DISABLED"
          ]
        }
      },
      "type": "object"
    },
    "AwsEfsFileSystemDetails": {
      "id": "AwsEfsFileSystemDetails",
      "description": "Details of an AWS EFS file system.",
      "properties": {},
      "type": "object"
    },
    "ReportSummaryVMWareEngineFinding": {
      "id": "ReportSummaryVMWareEngineFinding",
      "description": "A set of findings that applies to assets destined for VMWare Engine.",
      "properties": {
        "allocatedRegions": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Set of regions in which the assets were allocated"
        },
        "nodeAllocations": {
          "description": "Set of per-nodetype allocation records",
          "items": {
            "$ref": "ReportSummaryVMWareNodeAllocation"
          },
          "type": "array"
        },
        "allocatedAssetCount": {
          "description": "Count of assets which are allocated",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListReportExportJobsResponse": {
      "id": "ListReportExportJobsResponse",
      "description": "Response message for listing report export jobs.",
      "properties": {
        "reportExportJobs": {
          "items": {
            "$ref": "ReportExportJob"
          },
          "type": "array",
          "description": "Output only. The list of report export jobs.",
          "readOnly": true
        },
        "nextPageToken": {
          "description": "Output only. A token identifying a page of results the server should return.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "MachineNetworkDetails": {
      "type": "object",
      "description": "Details of network adapters and settings.",
      "properties": {
        "networkAdapters": {
          "description": "List of network adapters.",
          "$ref": "NetworkAdapterList"
        },
        "primaryIpAddress": {
          "type": "string",
          "description": "The primary IP address of the machine."
        },
        "primaryMacAddress": {
          "description": "MAC address of the machine. This property is used to uniqly identify the machine.",
          "type": "string"
        },
        "defaultGateway": {
          "description": "Default gateway address.",
          "type": "string"
        },
        "publicIpAddress": {
          "type": "string",
          "description": "The public IP address of the machine."
        }
      },
      "id": "MachineNetworkDetails"
    },
    "AwsVpcDetails": {
      "type": "object",
      "description": "Asset information specific for AWS VPCs.",
      "properties": {},
      "id": "AwsVpcDetails"
    },
    "AwsS3BucketDetailsObjectsMetadata": {
      "type": "object",
      "id": "AwsS3BucketDetailsObjectsMetadata",
      "description": "The metadata of the objects in the bucket.",
      "properties": {
        "totalObjects": {
          "description": "Optional. The total number of objects in the bucket.",
          "$ref": "AwsS3BucketDetailsObjectsMetadataTotalObjects"
        }
      }
    },
    "SoleTenancyPreferences": {
      "type": "object",
      "id": "SoleTenancyPreferences",
      "description": "Preferences concerning Sole Tenancy nodes and VMs.",
      "properties": {
        "cpuOvercommitRatio": {
          "type": "number",
          "description": "CPU overcommit ratio. Acceptable values are between 1.0 and 2.0 inclusive.",
          "format": "double"
        },
        "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.",
          "enumDescriptions": [
            "Unspecified commitment plan.",
            "No commitment plan (on-demand usage).",
            "1-year regular committed use discount.",
            "3-year regular committed use discount.",
            "1-year flexible committed use discount. While not supported in the v1 API, this value is converted to UNSPECIFIED in conversions to the v1 API.",
            "3-year flexible committed use discount. While not supported in the v1 API, this value is converted to UNSPECIFIED in conversions to the v1 API."
          ],
          "type": "string",
          "enum": [
            "COMMITMENT_PLAN_UNSPECIFIED",
            "ON_DEMAND",
            "COMMITMENT_1_YEAR",
            "COMMITMENT_3_YEAR",
            "COMMITMENT_FLEXIBLE_1_YEAR",
            "COMMITMENT_FLEXIBLE_3_YEAR"
          ]
        },
        "hostMaintenancePolicy": {
          "description": "Sole Tenancy nodes maintenance policy.",
          "enumDescriptions": [
            "Unspecified host maintenance policy.",
            "Default host maintenance policy.",
            "Restart in place host maintenance policy.",
            "Migrate within node group host maintenance policy."
          ],
          "type": "string",
          "enum": [
            "HOST_MAINTENANCE_POLICY_UNSPECIFIED",
            "HOST_MAINTENANCE_POLICY_DEFAULT",
            "HOST_MAINTENANCE_POLICY_RESTART_IN_PLACE",
            "HOST_MAINTENANCE_POLICY_MIGRATE_WITHIN_NODE_GROUP"
          ]
        },
        "nodeTypes": {
          "description": "A list of sole tenant node types. An empty list means that all possible node types will be considered.",
          "type": "array",
          "items": {
            "$ref": "SoleTenantNodeType"
          }
        },
        "osPricingPreferences": {
          "description": "Optional. Pricing options for OS images.",
          "$ref": "OperatingSystemPricingPreferences"
        }
      }
    },
    "PostgreSqlExtension": {
      "type": "object",
      "id": "PostgreSqlExtension",
      "description": "PostgreSql extension.",
      "properties": {
        "extension": {
          "description": "Required. The extension name.",
          "type": "string"
        },
        "version": {
          "description": "Required. The extension version.",
          "type": "string"
        }
      }
    },
    "DiskPartition": {
      "id": "DiskPartition",
      "description": "Disk Partition details.",
      "properties": {
        "capacityBytes": {
          "type": "string",
          "description": "Partition capacity.",
          "format": "int64"
        },
        "freeBytes": {
          "type": "string",
          "description": "Partition free space.",
          "format": "int64"
        },
        "type": {
          "type": "string",
          "description": "Partition type (e.g. BIOS boot)."
        },
        "uuid": {
          "description": "Partition UUID.",
          "type": "string"
        },
        "subPartitions": {
          "description": "Sub-partitions.",
          "$ref": "DiskPartitionList"
        },
        "fileSystem": {
          "type": "string",
          "description": "Partition file system."
        },
        "mountPoint": {
          "description": "Mount point (Linux/Windows) or drive letter (Windows).",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ReportSummaryVMWareNodeAllocation": {
      "type": "object",
      "description": "Represents assets allocated to a specific VMWare Node type.",
      "properties": {
        "vmwareNode": {
          "description": "VMWare node type, e.g. \"ve1-standard-72\"",
          "$ref": "ReportSummaryVMWareNode"
        },
        "nodeCount": {
          "description": "Count of this node type to be provisioned",
          "format": "int64",
          "type": "string"
        },
        "allocatedAssetCount": {
          "description": "Count of assets allocated to these nodes",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "ReportSummaryVMWareNodeAllocation"
    },
    "BatchUpdateAssetsResponse": {
      "description": "Response for updating a list of assets.",
      "properties": {
        "assets": {
          "items": {
            "$ref": "Asset"
          },
          "type": "array",
          "description": "Update asset content. The content only includes values after field mask being applied."
        }
      },
      "id": "BatchUpdateAssetsResponse",
      "type": "object"
    },
    "Money": {
      "type": "object",
      "id": "Money",
      "description": "Represents an amount of money with its currency type.",
      "properties": {
        "currencyCode": {
          "type": "string",
          "description": "The three-letter currency code defined in ISO 4217."
        },
        "units": {
          "description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.",
          "format": "int64",
          "type": "string"
        },
        "nanos": {
          "type": "integer",
          "description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.",
          "format": "int32"
        }
      }
    },
    "SendDiscoveryClientHeartbeatRequest": {
      "id": "SendDiscoveryClientHeartbeatRequest",
      "description": "A request to send a discovery client heartbeat.",
      "properties": {
        "version": {
          "description": "Optional. Client application version.",
          "type": "string"
        },
        "errors": {
          "description": "Optional. Errors affecting client functionality.",
          "type": "array",
          "items": {
            "$ref": "Status"
          }
        }
      },
      "type": "object"
    },
    "Selinux": {
      "description": "SELinux details.",
      "properties": {
        "mode": {
          "description": "SELinux mode disabled / enforcing / permissive.",
          "type": "string"
        },
        "enabled": {
          "description": "Is SELinux enabled.",
          "type": "boolean"
        }
      },
      "id": "Selinux",
      "type": "object"
    },
    "DatabaseDetails": {
      "type": "object",
      "id": "DatabaseDetails",
      "description": "Details of a logical database.",
      "properties": {
        "databaseName": {
          "type": "string",
          "description": "The name of the database."
        },
        "allocatedStorageBytes": {
          "description": "The allocated storage for the database in bytes.",
          "format": "int64",
          "type": "string"
        },
        "parentDatabaseDeployment": {
          "description": "The parent database deployment that contains the logical database.",
          "$ref": "DatabaseDetailsParentDatabaseDeployment"
        },
        "schemas": {
          "type": "array",
          "items": {
            "$ref": "DatabaseSchema"
          },
          "description": "The database schemas."
        }
      }
    },
    "AwsApplicationLoadBalancerDetails": {
      "description": "Asset information specific for AWS Application Load Balancers.",
      "properties": {},
      "id": "AwsApplicationLoadBalancerDetails",
      "type": "object"
    },
    "NetworkAdapterList": {
      "id": "NetworkAdapterList",
      "description": "List of network adapters.",
      "properties": {
        "networkAdapters": {
          "type": "array",
          "items": {
            "$ref": "NetworkAdapterDetails"
          },
          "description": "Network adapter descriptions."
        },
        "entries": {
          "type": "array",
          "items": {
            "$ref": "NetworkAdapterDetails"
          },
          "description": "Network adapter entries."
        }
      },
      "type": "object"
    }
  },
  "servicePath": "",
  "protocol": "rest",
  "basePath": "",
  "ownerDomain": "google.com",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "list": {
              "httpMethod": "GET",
              "flatPath": "v1alpha1/projects/{projectsId}/locations",
              "path": "v1alpha1/{+name}/locations",
              "parameters": {
                "extraLocationTypes": {
                  "location": "query",
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage.",
                  "repeated": true,
                  "type": "string"
                },
                "name": {
                  "type": "string",
                  "location": "path",
                  "description": "The resource that owns the locations collection, if applicable.",
                  "pattern": "^projects/[^/]+$",
                  "required": true
                },
                "filter": {
                  "type": "string",
                  "location": "query",
                  "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)."
                },
                "pageSize": {
                  "type": "integer",
                  "location": "query",
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "format": "int32"
                },
                "pageToken": {
                  "location": "query",
                  "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "id": "migrationcenter.projects.locations.list",
              "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.",
              "response": {
                "$ref": "ListLocationsResponse"
              }
            },
            "get": {
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "response": {
                "$ref": "Location"
              },
              "description": "Gets information about a location.",
              "id": "migrationcenter.projects.locations.get",
              "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}",
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "type": "string",
                  "location": "path",
                  "description": "Resource name for the location.",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "required": true
                }
              },
              "path": "v1alpha1/{+name}"
            },
            "getSettings": {
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "response": {
                "$ref": "Settings"
              },
              "description": "Gets the details of regional settings.",
              "id": "migrationcenter.projects.locations.getSettings",
              "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/settings",
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Required. Name of the resource.",
                  "pattern": "^projects/[^/]+/locations/[^/]+/settings$",
                  "required": true,
                  "location": "path",
                  "type": "string"
                }
              },
              "path": "v1alpha1/{+name}"
            },
            "updateSettings": {
              "path": "v1alpha1/{+name}",
              "parameters": {
                "name": {
                  "description": "Output only. The name of the resource.",
                  "pattern": "^projects/[^/]+/locations/[^/]+/settings$",
                  "required": true,
                  "location": "path",
                  "type": "string"
                },
                "updateMask": {
                  "location": "query",
                  "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",
                  "type": "string"
                },
                "requestId": {
                  "type": "string",
                  "location": "query",
                  "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
                }
              },
              "parameterOrder": [
                "name"
              ],
              "httpMethod": "PATCH",
              "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/settings",
              "id": "migrationcenter.projects.locations.updateSettings",
              "description": "Updates the regional-level project settings.",
              "response": {
                "$ref": "Operation"
              },
              "request": {
                "$ref": "Settings"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          },
          "resources": {
            "sources": {
              "methods": {
                "get": {
                  "path": "v1alpha1/{+name}",
                  "parameters": {
                    "name": {
                      "type": "string",
                      "location": "path",
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+$",
                      "required": true
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "GET",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}",
                  "id": "migrationcenter.projects.locations.sources.get",
                  "description": "Gets the details of a source.",
                  "response": {
                    "$ref": "Source"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "ListSourcesResponse"
                  },
                  "id": "migrationcenter.projects.locations.sources.list",
                  "description": "Lists all the sources in a given project and location.",
                  "httpMethod": "GET",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources",
                  "parameters": {
                    "orderBy": {
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "type": "string",
                      "description": "Required. Parent value for `ListSourcesRequest`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path"
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "A token identifying a page of results that the server should return.",
                      "type": "string"
                    },
                    "pageSize": {
                      "type": "integer",
                      "description": "Requested page size. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default value.",
                      "format": "int32",
                      "location": "query"
                    },
                    "filter": {
                      "type": "string",
                      "description": "Filtering results.",
                      "location": "query"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1alpha1/{+parent}/sources"
                },
                "create": {
                  "parameters": {
                    "sourceId": {
                      "location": "query",
                      "description": "Required. User specified ID for the source. It will become the last component of the source name. The ID must be unique within the project, must conform with RFC-1034, is restricted to lower-cased letters, and has a maximum length of 63 characters. The ID must match the regular expression: `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.",
                      "type": "string"
                    },
                    "parent": {
                      "description": "Required. Value for parent.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    },
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1alpha1/{+parent}/sources",
                  "httpMethod": "POST",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources",
                  "response": {
                    "$ref": "Operation"
                  },
                  "id": "migrationcenter.projects.locations.sources.create",
                  "description": "Creates a new source in a given project and location.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "Source"
                  }
                },
                "patch": {
                  "request": {
                    "$ref": "Source"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Updates the parameters of a source.",
                  "id": "migrationcenter.projects.locations.sources.patch",
                  "response": {
                    "$ref": "Operation"
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}",
                  "httpMethod": "PATCH",
                  "path": "v1alpha1/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Output only. The full name of the source.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    },
                    "updateMask": {
                      "type": "string",
                      "description": "Required. Field mask is used to specify the fields to be overwritten in the `Source` resource by the update. The values specified in the `update_mask` field are relative to the resource, not the full request. A field will be overwritten if it is in the mask. A single * value in the mask lets you to overwrite all fields.",
                      "format": "google-fieldmask",
                      "location": "query"
                    },
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    }
                  }
                },
                "delete": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Operation"
                  },
                  "id": "migrationcenter.projects.locations.sources.delete",
                  "description": "Deletes a source.",
                  "httpMethod": "DELETE",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes 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"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1alpha1/{+name}"
                }
              },
              "resources": {
                "errorFrames": {
                  "methods": {
                    "list": {
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}/errorFrames",
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "parent"
                      ],
                      "parameters": {
                        "pageToken": {
                          "description": "A token identifying a page of results the server should return.",
                          "location": "query",
                          "type": "string"
                        },
                        "pageSize": {
                          "type": "integer",
                          "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                          "format": "int32",
                          "location": "query"
                        },
                        "view": {
                          "type": "string",
                          "enum": [
                            "ERROR_FRAME_VIEW_UNSPECIFIED",
                            "ERROR_FRAME_VIEW_BASIC",
                            "ERROR_FRAME_VIEW_FULL"
                          ],
                          "enumDescriptions": [
                            "Value is unset. The system will fallback to the default value.",
                            "Include basic frame data, but not the full contents.",
                            "Include everything."
                          ],
                          "location": "query",
                          "description": "Optional. An optional view mode to control the level of details of each error frame. The default is a BASIC frame view."
                        },
                        "parent": {
                          "description": "Required. Parent value (the source) for `ListErrorFramesRequest`.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+$",
                          "required": true,
                          "location": "path",
                          "type": "string"
                        }
                      },
                      "path": "v1alpha1/{+parent}/errorFrames",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "ListErrorFramesResponse"
                      },
                      "description": "Lists all error frames in a given source and location.",
                      "id": "migrationcenter.projects.locations.sources.errorFrames.list"
                    },
                    "get": {
                      "httpMethod": "GET",
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}/errorFrames/{errorFramesId}",
                      "path": "v1alpha1/{+name}",
                      "parameters": {
                        "name": {
                          "type": "string",
                          "location": "path",
                          "description": "Required. The name of the frame to retrieve. Format: projects/{project}/locations/{location}/sources/{source}/errorFrames/{error_frame}",
                          "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+/errorFrames/[^/]+$",
                          "required": true
                        },
                        "view": {
                          "enumDescriptions": [
                            "Value is unset. The system will fallback to the default value.",
                            "Include basic frame data, but not the full contents.",
                            "Include everything."
                          ],
                          "type": "string",
                          "enum": [
                            "ERROR_FRAME_VIEW_UNSPECIFIED",
                            "ERROR_FRAME_VIEW_BASIC",
                            "ERROR_FRAME_VIEW_FULL"
                          ],
                          "location": "query",
                          "description": "Optional. An optional view mode to control the level of details for the frame. The default is a basic frame view."
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "migrationcenter.projects.locations.sources.errorFrames.get",
                      "description": "Gets the details of an error frame.",
                      "response": {
                        "$ref": "ErrorFrame"
                      }
                    }
                  }
                }
              }
            },
            "preferenceSets": {
              "methods": {
                "get": {
                  "path": "v1alpha1/{+name}",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/preferenceSets/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "GET",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/preferenceSets/{preferenceSetsId}",
                  "id": "migrationcenter.projects.locations.preferenceSets.get",
                  "description": "Gets the details of a preference set.",
                  "response": {
                    "$ref": "PreferenceSet"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "httpMethod": "GET",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/preferenceSets",
                  "path": "v1alpha1/{+parent}/preferenceSets",
                  "parameters": {
                    "pageSize": {
                      "type": "integer",
                      "location": "query",
                      "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"
                    },
                    "orderBy": {
                      "location": "query",
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "type": "string"
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "A token identifying a page of results the server should return.",
                      "type": "string"
                    },
                    "parent": {
                      "type": "string",
                      "location": "path",
                      "description": "Required. Parent value for `ListPreferenceSetsRequest`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.preferenceSets.list",
                  "description": "Lists all the preference sets in a given project and location.",
                  "response": {
                    "$ref": "ListPreferenceSetsResponse"
                  }
                },
                "create": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "PreferenceSet"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "id": "migrationcenter.projects.locations.preferenceSets.create",
                  "description": "Creates a new preference set in a given project and location.",
                  "httpMethod": "POST",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/preferenceSets",
                  "parameters": {
                    "parent": {
                      "location": "path",
                      "description": "Required. Value for parent.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "preferenceSetId": {
                      "location": "query",
                      "type": "string"
                    },
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1alpha1/{+parent}/preferenceSets"
                },
                "patch": {
                  "request": {
                    "$ref": "PreferenceSet"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.preferenceSets.patch",
                  "description": "Updates the parameters of a preference set.",
                  "response": {
                    "$ref": "Operation"
                  },
                  "httpMethod": "PATCH",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/preferenceSets/{preferenceSetsId}",
                  "path": "v1alpha1/{+name}",
                  "parameters": {
                    "requestId": {
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query",
                      "type": "string"
                    },
                    "name": {
                      "location": "path",
                      "description": "Output only. Name of the PreferenceSet.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/preferenceSets/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "updateMask": {
                      "type": "string",
                      "location": "query",
                      "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"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ]
                },
                "delete": {
                  "path": "v1alpha1/{+name}",
                  "parameters": {
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    },
                    "name": {
                      "description": "Required. Name of the group resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/preferenceSets/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "DELETE",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/preferenceSets/{preferenceSetsId}",
                  "id": "migrationcenter.projects.locations.preferenceSets.delete",
                  "description": "Deletes a preference set.",
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              }
            },
            "relations": {
              "methods": {
                "get": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.relations.get",
                  "description": "Gets the details of an relation.",
                  "response": {
                    "$ref": "Relation"
                  },
                  "httpMethod": "GET",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/relations/{relationsId}",
                  "path": "v1alpha1/{+name}",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/relations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ]
                },
                "list": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Lists all the relations in a given project and location.",
                  "id": "migrationcenter.projects.locations.relations.list",
                  "response": {
                    "$ref": "ListRelationsResponse"
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/relations",
                  "httpMethod": "GET",
                  "path": "v1alpha1/{+parent}/relations",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "filter": {
                      "type": "string",
                      "location": "query",
                      "description": "Filtering results."
                    },
                    "pageToken": {
                      "type": "string",
                      "location": "query",
                      "description": "A token identifying a page of results the server should return."
                    },
                    "pageSize": {
                      "location": "query",
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "format": "int32",
                      "type": "integer"
                    },
                    "parent": {
                      "description": "Required. Parent value for `ListRelationsRequest`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    },
                    "orderBy": {
                      "type": "string",
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "location": "query"
                    }
                  }
                }
              }
            },
            "operations": {
              "methods": {
                "list": {
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
                  "id": "migrationcenter.projects.locations.operations.list",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "pageSize": {
                      "description": "The standard list page size.",
                      "format": "int32",
                      "location": "query",
                      "type": "integer"
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "The standard list page token.",
                      "type": "string"
                    },
                    "name": {
                      "location": "path",
                      "description": "The name of the operation's parent resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "filter": {
                      "location": "query",
                      "description": "The standard list filter.",
                      "type": "string"
                    },
                    "returnPartialSuccess": {
                      "location": "query",
                      "description": "When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field. This can only be `true` when reading across collections. For example, when `parent` is set to `\"projects/example/locations/-\"`. This field is not supported by default and will result in an `UNIMPLEMENTED` error if set unless explicitly documented otherwise in service or product specific documentation.",
                      "type": "boolean"
                    }
                  },
                  "path": "v1alpha1/{+name}/operations",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations",
                  "httpMethod": "GET"
                },
                "get": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "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.",
                  "id": "migrationcenter.projects.locations.operations.get",
                  "response": {
                    "$ref": "Operation"
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "httpMethod": "GET",
                  "path": "v1alpha1/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "location": "path",
                      "description": "The name of the operation resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  }
                },
                "delete": {
                  "httpMethod": "DELETE",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "path": "v1alpha1/{+name}",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "description": "The name of the operation resource to be deleted.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.operations.delete",
                  "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
                  "response": {
                    "$ref": "Empty"
                  }
                },
                "cancel": {
                  "response": {
                    "$ref": "Empty"
                  },
                  "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`.",
                  "id": "migrationcenter.projects.locations.operations.cancel",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "CancelOperationRequest"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "type": "string",
                      "description": "The name of the operation resource to be cancelled.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "path": "v1alpha1/{+name}:cancel",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "httpMethod": "POST"
                }
              }
            },
            "assets": {
              "methods": {
                "patch": {
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets/{assetsId}",
                  "httpMethod": "PATCH",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Output only. The full name of the asset.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/assets/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    },
                    "updateMask": {
                      "type": "string",
                      "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"
                    },
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "Asset"
                  },
                  "response": {
                    "$ref": "Asset"
                  },
                  "description": "Updates the parameters of an asset.",
                  "id": "migrationcenter.projects.locations.assets.patch"
                },
                "delete": {
                  "path": "v1alpha1/{+name}",
                  "parameters": {
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    },
                    "name": {
                      "type": "string",
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/assets/[^/]+$",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "DELETE",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets/{assetsId}",
                  "id": "migrationcenter.projects.locations.assets.delete",
                  "description": "Deletes an asset.",
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets",
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "pageSize": {
                      "location": "query",
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "format": "int32",
                      "type": "integer"
                    },
                    "view": {
                      "type": "string",
                      "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",
                      "description": "View of the assets. Defaults to BASIC."
                    },
                    "showHidden": {
                      "type": "boolean",
                      "location": "query",
                      "description": "Optional. When this value is set to 'true' the response will include all assets, including those that are hidden."
                    },
                    "pageToken": {
                      "description": "A token identifying a page of results the server should return.",
                      "location": "query",
                      "type": "string"
                    },
                    "filter": {
                      "location": "query",
                      "description": "Filtering results.",
                      "type": "string"
                    },
                    "orderBy": {
                      "location": "query",
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "type": "string"
                    },
                    "parent": {
                      "type": "string",
                      "description": "Required. Parent value for `ListAssetsRequest`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "path": "v1alpha1/{+parent}/assets",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "ListAssetsResponse"
                  },
                  "description": "Lists all the assets in a given project and location.",
                  "id": "migrationcenter.projects.locations.assets.list"
                },
                "aggregateValues": {
                  "httpMethod": "POST",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets:aggregateValues",
                  "parameters": {
                    "parent": {
                      "type": "string",
                      "description": "Required. Parent value for `AggregateAssetsValuesRequest`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1alpha1/{+parent}/assets:aggregateValues",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "AggregateAssetsValuesRequest"
                  },
                  "response": {
                    "$ref": "AggregateAssetsValuesResponse"
                  },
                  "id": "migrationcenter.projects.locations.assets.aggregateValues",
                  "description": "Aggregates the requested fields based on provided function."
                },
                "batchDelete": {
                  "description": "Deletes list of Assets.",
                  "id": "migrationcenter.projects.locations.assets.batchDelete",
                  "response": {
                    "$ref": "Empty"
                  },
                  "request": {
                    "$ref": "BatchDeleteAssetsRequest"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1alpha1/{+parent}/assets:batchDelete",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "Required. Parent value for batch asset delete.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    }
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets:batchDelete",
                  "httpMethod": "POST"
                },
                "reportAssetFrames": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "Frames"
                  },
                  "response": {
                    "$ref": "ReportAssetFramesResponse"
                  },
                  "id": "migrationcenter.projects.locations.assets.reportAssetFrames",
                  "description": "Reports a set of frames.",
                  "httpMethod": "POST",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets:reportAssetFrames",
                  "parameters": {
                    "source": {
                      "description": "Required. Reference to a source.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "location": "path",
                      "description": "Required. Parent of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1alpha1/{+parent}/assets:reportAssetFrames"
                },
                "get": {
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets/{assetsId}",
                  "httpMethod": "GET",
                  "path": "v1alpha1/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "view": {
                      "location": "query",
                      "description": "View of the assets. Defaults to BASIC.",
                      "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."
                      ],
                      "type": "string",
                      "enum": [
                        "ASSET_VIEW_UNSPECIFIED",
                        "ASSET_VIEW_BASIC",
                        "ASSET_VIEW_FULL",
                        "ASSET_VIEW_STANDARD"
                      ]
                    },
                    "name": {
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/assets/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Gets the details of an asset.",
                  "id": "migrationcenter.projects.locations.assets.get",
                  "response": {
                    "$ref": "Asset"
                  }
                },
                "batchUpdate": {
                  "request": {
                    "$ref": "BatchUpdateAssetsRequest"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Updates the parameters of a list of assets.",
                  "id": "migrationcenter.projects.locations.assets.batchUpdate",
                  "response": {
                    "$ref": "BatchUpdateAssetsResponse"
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assets:batchUpdate",
                  "httpMethod": "POST",
                  "path": "v1alpha1/{+parent}/assets:batchUpdate",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "location": "path",
                      "description": "Required. Parent value for batch asset update.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  }
                }
              }
            },
            "reportConfigs": {
              "methods": {
                "get": {
                  "path": "v1alpha1/{+name}",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "GET",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}",
                  "id": "migrationcenter.projects.locations.reportConfigs.get",
                  "description": "Gets details of a single ReportConfig.",
                  "response": {
                    "$ref": "ReportConfig"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "httpMethod": "GET",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/reportConfigs",
                  "path": "v1alpha1/{+parent}/reportConfigs",
                  "parameters": {
                    "orderBy": {
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "type": "string",
                      "location": "path",
                      "description": "Required. Parent value for `ListReportConfigsRequest`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true
                    },
                    "pageToken": {
                      "type": "string",
                      "description": "A token identifying a page of results the server should return.",
                      "location": "query"
                    },
                    "pageSize": {
                      "type": "integer",
                      "location": "query",
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "format": "int32"
                    },
                    "filter": {
                      "description": "Filtering results.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.reportConfigs.list",
                  "description": "Lists ReportConfigs in a given project and location.",
                  "response": {
                    "$ref": "ListReportConfigsResponse"
                  }
                },
                "create": {
                  "path": "v1alpha1/{+parent}/reportConfigs",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "location": "path",
                      "description": "Required. Value for parent.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    },
                    "reportConfigId": {
                      "type": "string",
                      "location": "query",
                      "description": "Required. User specified ID for the report config. It will become the last component of the report config name. The ID must be unique within the project, must conform with RFC-1034, is restricted to lower-cased letters, and has a maximum length of 63 characters. The ID must match the regular expression: `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`."
                    }
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/reportConfigs",
                  "httpMethod": "POST",
                  "description": "Creates a report configuration.",
                  "id": "migrationcenter.projects.locations.reportConfigs.create",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "ReportConfig"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "delete": {
                  "path": "v1alpha1/{+name}",
                  "parameters": {
                    "requestId": {
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query",
                      "type": "string"
                    },
                    "name": {
                      "location": "path",
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "force": {
                      "location": "query",
                      "description": "Optional. If set to `true`, any child `Reports` of this entity will also be deleted. If set to `false`, the request only works if the resource has no children.",
                      "type": "boolean"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "DELETE",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}",
                  "id": "migrationcenter.projects.locations.reportConfigs.delete",
                  "description": "Deletes a ReportConfig.",
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              },
              "resources": {
                "reports": {
                  "methods": {
                    "create": {
                      "request": {
                        "$ref": "Report"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "migrationcenter.projects.locations.reportConfigs.reports.create",
                      "description": "Creates a report.",
                      "response": {
                        "$ref": "Operation"
                      },
                      "httpMethod": "POST",
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reports",
                      "path": "v1alpha1/{+parent}/reports",
                      "parameters": {
                        "parent": {
                          "location": "path",
                          "description": "Required. Value for parent.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                          "required": true,
                          "type": "string"
                        },
                        "requestId": {
                          "type": "string",
                          "location": "query",
                          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
                        },
                        "reportId": {
                          "description": "Required. User specified id for the report. It will become the last component of the report name. The id must be unique within the project, must conform with RFC-1034, is restricted to lower-cased letters, and has a maximum length of 63 characters. The id must match the regular expression: `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ]
                    },
                    "delete": {
                      "parameters": {
                        "requestId": {
                          "location": "query",
                          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                          "type": "string"
                        },
                        "name": {
                          "description": "Required. Name of the resource.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+/reports/[^/]+$",
                          "required": true,
                          "location": "path",
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1alpha1/{+name}",
                      "httpMethod": "DELETE",
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reports/{reportsId}",
                      "response": {
                        "$ref": "Operation"
                      },
                      "id": "migrationcenter.projects.locations.reportConfigs.reports.delete",
                      "description": "Deletes a Report.",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "get": {
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Gets details of a single Report.",
                      "id": "migrationcenter.projects.locations.reportConfigs.reports.get",
                      "response": {
                        "$ref": "Report"
                      },
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reports/{reportsId}",
                      "httpMethod": "GET",
                      "path": "v1alpha1/{+name}",
                      "parameterOrder": [
                        "name"
                      ],
                      "parameters": {
                        "name": {
                          "type": "string",
                          "description": "Required. Name of the resource.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+/reports/[^/]+$",
                          "required": true,
                          "location": "path"
                        },
                        "view": {
                          "location": "query",
                          "description": "Determines what information to retrieve for the Report.",
                          "type": "string",
                          "enum": [
                            "REPORT_VIEW_UNSPECIFIED",
                            "REPORT_VIEW_BASIC",
                            "REPORT_VIEW_FULL",
                            "REPORT_VIEW_STANDARD"
                          ],
                          "enumDescriptions": [
                            "The report view is not specified. The API displays the basic view by default.",
                            "The report view includes only basic metadata of the Report. Useful for list views.",
                            "The report view includes all the metadata of the Report. Useful for preview.",
                            "The report view includes the standard metadata of an report. Useful for detail view."
                          ]
                        }
                      }
                    },
                    "list": {
                      "parameterOrder": [
                        "parent"
                      ],
                      "parameters": {
                        "filter": {
                          "description": "Filtering results.",
                          "location": "query",
                          "type": "string"
                        },
                        "pageSize": {
                          "location": "query",
                          "description": "Requested page size. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default value.",
                          "format": "int32",
                          "type": "integer"
                        },
                        "view": {
                          "type": "string",
                          "enum": [
                            "REPORT_VIEW_UNSPECIFIED",
                            "REPORT_VIEW_BASIC",
                            "REPORT_VIEW_FULL",
                            "REPORT_VIEW_STANDARD"
                          ],
                          "enumDescriptions": [
                            "The report view is not specified. The API displays the basic view by default.",
                            "The report view includes only basic metadata of the Report. Useful for list views.",
                            "The report view includes all the metadata of the Report. Useful for preview.",
                            "The report view includes the standard metadata of an report. Useful for detail view."
                          ],
                          "location": "query",
                          "description": "Determines what information to retrieve for each Report."
                        },
                        "pageToken": {
                          "location": "query",
                          "description": "A token identifying a page of results that the server should return.",
                          "type": "string"
                        },
                        "parent": {
                          "location": "path",
                          "description": "Required. Parent value for `ListReportsRequest`.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                          "required": true,
                          "type": "string"
                        },
                        "orderBy": {
                          "type": "string",
                          "location": "query",
                          "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details."
                        }
                      },
                      "path": "v1alpha1/{+parent}/reports",
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reports",
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "ListReportsResponse"
                      },
                      "description": "Lists Reports in a given ReportConfig.",
                      "id": "migrationcenter.projects.locations.reportConfigs.reports.list",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    }
                  },
                  "resources": {
                    "reportExportJobs": {
                      "methods": {
                        "list": {
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Lists all the report export jobs for a given report.",
                          "id": "migrationcenter.projects.locations.reportConfigs.reports.reportExportJobs.list",
                          "response": {
                            "$ref": "ListReportExportJobsResponse"
                          },
                          "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reports/{reportsId}/reportExportJobs",
                          "httpMethod": "GET",
                          "path": "v1alpha1/{+parent}/reportExportJobs",
                          "parameterOrder": [
                            "parent"
                          ],
                          "parameters": {
                            "pageToken": {
                              "location": "query",
                              "description": "Optional. A token identifying a page of results that the server should return.",
                              "type": "string"
                            },
                            "pageSize": {
                              "type": "integer",
                              "description": "Optional. Requested page size. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default value.",
                              "format": "int32",
                              "location": "query"
                            },
                            "parent": {
                              "description": "Required. Parent report owning the export jobs.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+/reports/[^/]+$",
                              "required": true,
                              "location": "path",
                              "type": "string"
                            }
                          }
                        },
                        "create": {
                          "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reports/{reportsId}/reportExportJobs",
                          "httpMethod": "POST",
                          "parameterOrder": [
                            "parent"
                          ],
                          "parameters": {
                            "reportExportJobId": {
                              "type": "string",
                              "description": "Required. The ID to use for the report export job.",
                              "location": "query"
                            },
                            "parent": {
                              "location": "path",
                              "description": "Required. The parent resource where this export job will be created.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+/reports/[^/]+$",
                              "required": true,
                              "type": "string"
                            },
                            "requestId": {
                              "type": "string",
                              "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                              "location": "query"
                            }
                          },
                          "path": "v1alpha1/{+parent}/reportExportJobs",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "request": {
                            "$ref": "ReportExportJob"
                          },
                          "response": {
                            "$ref": "Operation"
                          },
                          "description": "Export a Report into a supported destination.",
                          "id": "migrationcenter.projects.locations.reportConfigs.reports.reportExportJobs.create"
                        },
                        "delete": {
                          "path": "v1alpha1/{+name}",
                          "parameterOrder": [
                            "name"
                          ],
                          "parameters": {
                            "requestId": {
                              "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                              "location": "query",
                              "type": "string"
                            },
                            "name": {
                              "description": "Required. Name of the resource.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+/reports/[^/]+/reportExportJobs/[^/]+$",
                              "required": true,
                              "location": "path",
                              "type": "string"
                            }
                          },
                          "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reports/{reportsId}/reportExportJobs/{reportExportJobsId}",
                          "httpMethod": "DELETE",
                          "description": "Deletes an report export job.",
                          "id": "migrationcenter.projects.locations.reportConfigs.reports.reportExportJobs.delete",
                          "response": {
                            "$ref": "Operation"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ]
                        },
                        "run": {
                          "parameters": {
                            "name": {
                              "type": "string",
                              "location": "path",
                              "description": "Required. Name of the resource.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+/reports/[^/]+/reportExportJobs/[^/]+$",
                              "required": true
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "path": "v1alpha1/{+name}:run",
                          "httpMethod": "POST",
                          "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reports/{reportsId}/reportExportJobs/{reportExportJobsId}:run",
                          "response": {
                            "$ref": "Operation"
                          },
                          "id": "migrationcenter.projects.locations.reportConfigs.reports.reportExportJobs.run",
                          "description": "Runs a report export job.",
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "request": {
                            "$ref": "RunReportExportJobRequest"
                          }
                        },
                        "get": {
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Gets the details of a report export job.",
                          "id": "migrationcenter.projects.locations.reportConfigs.reports.reportExportJobs.get",
                          "response": {
                            "$ref": "ReportExportJob"
                          },
                          "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reports/{reportsId}/reportExportJobs/{reportExportJobsId}",
                          "httpMethod": "GET",
                          "path": "v1alpha1/{+name}",
                          "parameterOrder": [
                            "name"
                          ],
                          "parameters": {
                            "name": {
                              "type": "string",
                              "description": "Required. Name of the resource.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+/reports/[^/]+/reportExportJobs/[^/]+$",
                              "required": true,
                              "location": "path"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "importJobs": {
              "methods": {
                "run": {
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}:run",
                  "httpMethod": "POST",
                  "path": "v1alpha1/{+name}:run",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "location": "path",
                      "description": "Required. The name of the import job to run.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "request": {
                    "$ref": "RunImportJobRequest"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Runs an import job.",
                  "id": "migrationcenter.projects.locations.importJobs.run",
                  "response": {
                    "$ref": "Operation"
                  }
                },
                "get": {
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "type": "string",
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "required": true,
                      "location": "path"
                    },
                    "view": {
                      "location": "query",
                      "description": "Optional. The level of details of the import job. Default value is 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."
                      ],
                      "type": "string",
                      "enum": [
                        "IMPORT_JOB_VIEW_UNSPECIFIED",
                        "IMPORT_JOB_VIEW_BASIC",
                        "IMPORT_JOB_VIEW_FULL"
                      ]
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}",
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "ImportJob"
                  },
                  "description": "Gets the details of an import job.",
                  "id": "migrationcenter.projects.locations.importJobs.get",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.importJobs.list",
                  "description": "Lists all import jobs.",
                  "response": {
                    "$ref": "ListImportJobsResponse"
                  },
                  "httpMethod": "GET",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs",
                  "path": "v1alpha1/{+parent}/importJobs",
                  "parameters": {
                    "orderBy": {
                      "location": "query",
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                      "type": "string"
                    },
                    "parent": {
                      "description": "Required. Parent value for `ListImportJobsRequest`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    },
                    "pageSize": {
                      "type": "integer",
                      "location": "query",
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "format": "int32"
                    },
                    "view": {
                      "description": "Optional. The level of details of each import job. Default value is BASIC.",
                      "location": "query",
                      "enumDescriptions": [
                        "The import job view is not specified. The API displays the basic view by default.",
                        "The import job view includes basic metadata of an import job. This view does not include payload information.",
                        "The import job view includes all metadata of an import job."
                      ],
                      "enum": [
                        "IMPORT_JOB_VIEW_UNSPECIFIED",
                        "IMPORT_JOB_VIEW_BASIC",
                        "IMPORT_JOB_VIEW_FULL"
                      ],
                      "type": "string"
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "A token identifying a page of results the server should return.",
                      "type": "string"
                    },
                    "filter": {
                      "type": "string",
                      "location": "query",
                      "description": "Filtering results."
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ]
                },
                "validate": {
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. The name of the import job to validate.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}:validate",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}:validate",
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Operation"
                  },
                  "description": "Validates an import job.",
                  "id": "migrationcenter.projects.locations.importJobs.validate",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "ValidateImportJobRequest"
                  }
                },
                "create": {
                  "path": "v1alpha1/{+parent}/importJobs",
                  "parameters": {
                    "parent": {
                      "description": "Required. Value for parent.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    },
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    },
                    "importJobId": {
                      "type": "string",
                      "location": "query",
                      "description": "Required. ID of the import job."
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "POST",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs",
                  "id": "migrationcenter.projects.locations.importJobs.create",
                  "description": "Creates an import job.",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "ImportJob"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "delete": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "migrationcenter.projects.locations.importJobs.delete",
                  "description": "Deletes an import job.",
                  "response": {
                    "$ref": "Operation"
                  },
                  "httpMethod": "DELETE",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}",
                  "path": "v1alpha1/{+name}",
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    },
                    "force": {
                      "type": "boolean",
                      "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"
                    },
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ]
                },
                "patch": {
                  "parameters": {
                    "requestId": {
                      "type": "string",
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
                    },
                    "name": {
                      "type": "string",
                      "location": "path",
                      "description": "Output only. The full name of the import job.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                      "required": true
                    },
                    "updateMask": {
                      "location": "query",
                      "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"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1alpha1/{+name}",
                  "httpMethod": "PATCH",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "id": "migrationcenter.projects.locations.importJobs.patch",
                  "description": "Updates an import job.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "ImportJob"
                  }
                }
              },
              "resources": {
                "importDataFiles": {
                  "methods": {
                    "get": {
                      "httpMethod": "GET",
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}/importDataFiles/{importDataFilesId}",
                      "parameters": {
                        "name": {
                          "type": "string",
                          "description": "Required. Name of the ImportDataFile.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+/importDataFiles/[^/]+$",
                          "required": true,
                          "location": "path"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1alpha1/{+name}",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "ImportDataFile"
                      },
                      "id": "migrationcenter.projects.locations.importJobs.importDataFiles.get",
                      "description": "Gets an import data file."
                    },
                    "list": {
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "List import data files.",
                      "id": "migrationcenter.projects.locations.importJobs.importDataFiles.list",
                      "response": {
                        "$ref": "ListImportDataFilesResponse"
                      },
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}/importDataFiles",
                      "httpMethod": "GET",
                      "path": "v1alpha1/{+parent}/importDataFiles",
                      "parameterOrder": [
                        "parent"
                      ],
                      "parameters": {
                        "pageToken": {
                          "location": "query",
                          "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.",
                          "type": "string"
                        },
                        "pageSize": {
                          "type": "integer",
                          "location": "query",
                          "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"
                        },
                        "filter": {
                          "description": "Filtering results.",
                          "location": "query",
                          "type": "string"
                        },
                        "orderBy": {
                          "type": "string",
                          "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details.",
                          "location": "query"
                        },
                        "parent": {
                          "type": "string",
                          "location": "path",
                          "description": "Required. Name of the parent of the `ImportDataFiles` resource.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                          "required": true
                        }
                      }
                    },
                    "create": {
                      "path": "v1alpha1/{+parent}/importDataFiles",
                      "parameterOrder": [
                        "parent"
                      ],
                      "parameters": {
                        "importDataFileId": {
                          "location": "query",
                          "description": "Required. The ID of the new data file.",
                          "type": "string"
                        },
                        "parent": {
                          "location": "path",
                          "description": "Required. Name of the parent of the ImportDataFile.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+$",
                          "required": true,
                          "type": "string"
                        },
                        "requestId": {
                          "type": "string",
                          "location": "query",
                          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
                        }
                      },
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}/importDataFiles",
                      "httpMethod": "POST",
                      "description": "Creates an import data file.",
                      "id": "migrationcenter.projects.locations.importJobs.importDataFiles.create",
                      "response": {
                        "$ref": "Operation"
                      },
                      "request": {
                        "$ref": "ImportDataFile"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "delete": {
                      "description": "Delete an import data file.",
                      "id": "migrationcenter.projects.locations.importJobs.importDataFiles.delete",
                      "response": {
                        "$ref": "Operation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "path": "v1alpha1/{+name}",
                      "parameterOrder": [
                        "name"
                      ],
                      "parameters": {
                        "name": {
                          "description": "Required. Name of the ImportDataFile to delete.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/importJobs/[^/]+/importDataFiles/[^/]+$",
                          "required": true,
                          "location": "path",
                          "type": "string"
                        },
                        "requestId": {
                          "type": "string",
                          "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                          "location": "query"
                        }
                      },
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/importJobs/{importJobsId}/importDataFiles/{importDataFilesId}",
                      "httpMethod": "DELETE"
                    }
                  }
                }
              }
            },
            "assetsExportJobs": {
              "methods": {
                "run": {
                  "description": "Runs an assets export job, returning an AssetsExportJobExecution.",
                  "id": "migrationcenter.projects.locations.assetsExportJobs.run",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "RunAssetsExportJobRequest"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1alpha1/{+name}:run",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "type": "string",
                      "location": "path",
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/assetsExportJobs/[^/]+$",
                      "required": true
                    }
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assetsExportJobs/{assetsExportJobsId}:run",
                  "httpMethod": "POST"
                },
                "get": {
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assetsExportJobs/{assetsExportJobsId}",
                  "httpMethod": "GET",
                  "path": "v1alpha1/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "type": "string",
                      "location": "path",
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/assetsExportJobs/[^/]+$",
                      "required": true
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Gets the details of an assets export job.",
                  "id": "migrationcenter.projects.locations.assetsExportJobs.get",
                  "response": {
                    "$ref": "AssetsExportJob"
                  }
                },
                "create": {
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "Required. The parent resource where the assts export job will be created.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    },
                    "assetsExportJobId": {
                      "type": "string",
                      "location": "query",
                      "description": "Required. The ID to use for the asset export job."
                    },
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/assetsExportJobs",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assetsExportJobs",
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Operation"
                  },
                  "description": "Creates a new assets export job.",
                  "id": "migrationcenter.projects.locations.assetsExportJobs.create",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "AssetsExportJob"
                  }
                },
                "delete": {
                  "response": {
                    "$ref": "Operation"
                  },
                  "id": "migrationcenter.projects.locations.assetsExportJobs.delete",
                  "description": "Deletes an assets export job.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "location": "path",
                      "description": "Required. The name of the assets export job to delete.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/assetsExportJobs/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1alpha1/{+name}",
                  "httpMethod": "DELETE",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assetsExportJobs/{assetsExportJobsId}"
                },
                "list": {
                  "response": {
                    "$ref": "ListAssetsExportJobsResponse"
                  },
                  "id": "migrationcenter.projects.locations.assetsExportJobs.list",
                  "description": "Lists all the assets export jobs in a given project and location.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "Required. Parent resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    },
                    "pageSize": {
                      "type": "integer",
                      "location": "query",
                      "description": "Optional. Requested page size. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default value.",
                      "format": "int32"
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "Optional. A token identifying a page of results that the server should return.",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1alpha1/{+parent}/assetsExportJobs",
                  "httpMethod": "GET",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/assetsExportJobs"
                }
              }
            },
            "groups": {
              "methods": {
                "get": {
                  "id": "migrationcenter.projects.locations.groups.get",
                  "description": "Gets the details of a group.",
                  "response": {
                    "$ref": "Group"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1alpha1/{+name}",
                  "parameters": {
                    "name": {
                      "type": "string",
                      "location": "path",
                      "description": "Required. Name of the resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "required": true
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "GET",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}"
                },
                "list": {
                  "httpMethod": "GET",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups",
                  "parameters": {
                    "pageToken": {
                      "type": "string",
                      "description": "A token identifying a page of results the server should return.",
                      "location": "query"
                    },
                    "pageSize": {
                      "type": "integer",
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "format": "int32",
                      "location": "query"
                    },
                    "filter": {
                      "description": "Filtering results.",
                      "location": "query",
                      "type": "string"
                    },
                    "orderBy": {
                      "type": "string",
                      "location": "query",
                      "description": "Field to sort by. See https://google.aip.dev/132#ordering for more details."
                    },
                    "parent": {
                      "description": "Required. Parent value for `ListGroupsRequest`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1alpha1/{+parent}/groups",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "ListGroupsResponse"
                  },
                  "id": "migrationcenter.projects.locations.groups.list",
                  "description": "Lists all groups in a given project and location."
                },
                "removeAssets": {
                  "response": {
                    "$ref": "Operation"
                  },
                  "description": "Removes assets from a group.",
                  "id": "migrationcenter.projects.locations.groups.removeAssets",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "RemoveAssetsFromGroupRequest"
                  },
                  "parameterOrder": [
                    "group"
                  ],
                  "parameters": {
                    "group": {
                      "description": "Required. Group reference.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+group}:removeAssets",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}:removeAssets",
                  "httpMethod": "POST"
                },
                "addAssets": {
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}:addAssets",
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "group"
                  ],
                  "parameters": {
                    "group": {
                      "location": "path",
                      "description": "Required. Group reference.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+group}:addAssets",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "AddAssetsToGroupRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "description": "Adds assets to a group.",
                  "id": "migrationcenter.projects.locations.groups.addAssets"
                },
                "create": {
                  "response": {
                    "$ref": "Operation"
                  },
                  "id": "migrationcenter.projects.locations.groups.create",
                  "description": "Creates a new group in a given project and location.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "Group"
                  },
                  "parameters": {
                    "groupId": {
                      "location": "query",
                      "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])?`.",
                      "type": "string"
                    },
                    "parent": {
                      "type": "string",
                      "location": "path",
                      "description": "Required. Value for parent.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true
                    },
                    "requestId": {
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1alpha1/{+parent}/groups",
                  "httpMethod": "POST",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups"
                },
                "patch": {
                  "description": "Updates the parameters of a group.",
                  "id": "migrationcenter.projects.locations.groups.patch",
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "Group"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1alpha1/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "type": "string",
                      "location": "path",
                      "description": "Output only. The name of the group.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "required": true
                    },
                    "updateMask": {
                      "type": "string",
                      "description": "Required. Field mask is used to specify the fields to be overwritten in the `Group` resource by the update. The values specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. A single * value in the mask lets you to overwrite all fields.",
                      "format": "google-fieldmask",
                      "location": "query"
                    },
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    }
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}",
                  "httpMethod": "PATCH"
                },
                "delete": {
                  "description": "Deletes a group.",
                  "id": "migrationcenter.projects.locations.groups.delete",
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1alpha1/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "type": "string",
                      "location": "path",
                      "description": "Required. Name of the group resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/groups/[^/]+$",
                      "required": true
                    },
                    "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"
                    }
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/groups/{groupsId}",
                  "httpMethod": "DELETE"
                }
              }
            },
            "discoveryClients": {
              "methods": {
                "create": {
                  "parameters": {
                    "parent": {
                      "description": "Required. Parent resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path",
                      "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"
                    },
                    "discoveryClientId": {
                      "type": "string",
                      "location": "query",
                      "description": "Required. User specified ID for the discovery client. It will become the last component of the discovery client name. The ID must be unique within the project, is restricted to lower-cased letters and has a maximum length of 63 characters. The ID must match the regular expression: `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`."
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1alpha1/{+parent}/discoveryClients",
                  "httpMethod": "POST",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/discoveryClients",
                  "response": {
                    "$ref": "Operation"
                  },
                  "id": "migrationcenter.projects.locations.discoveryClients.create",
                  "description": "Creates a new discovery client.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "DiscoveryClient"
                  }
                },
                "patch": {
                  "parameters": {
                    "requestId": {
                      "type": "string",
                      "location": "query",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000)."
                    },
                    "name": {
                      "type": "string",
                      "location": "path",
                      "description": "Output only. Identifier. Full name of this discovery client.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/discoveryClients/[^/]+$",
                      "required": true
                    },
                    "updateMask": {
                      "location": "query",
                      "description": "Required. Update mask is used to specify the fields to be overwritten in the `DiscoveryClient` resource by the update. The values specified in the `update_mask` field are relative to the resource, not the full request. A field will be overwritten if it is in the mask. A single * value in the mask lets you to overwrite all fields.",
                      "format": "google-fieldmask",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1alpha1/{+name}",
                  "httpMethod": "PATCH",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/discoveryClients/{discoveryClientsId}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "id": "migrationcenter.projects.locations.discoveryClients.patch",
                  "description": "Updates a discovery client.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "DiscoveryClient"
                  }
                },
                "delete": {
                  "path": "v1alpha1/{+name}",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "description": "Required. The discovery client name.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/discoveryClients/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "requestId": {
                      "type": "string",
                      "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "DELETE",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/discoveryClients/{discoveryClientsId}",
                  "id": "migrationcenter.projects.locations.discoveryClients.delete",
                  "description": "Deletes a discovery client.",
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/discoveryClients",
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "filter": {
                      "description": "Optional. Filter expression to filter results by.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "Optional. A page token, received from a previous `ListDiscoveryClients` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDiscoveryClients` must match the call that provided the page token.",
                      "type": "string"
                    },
                    "pageSize": {
                      "type": "integer",
                      "location": "query",
                      "description": "Optional. The maximum number of items to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default value.",
                      "format": "int32"
                    },
                    "parent": {
                      "type": "string",
                      "location": "path",
                      "description": "Required. Parent resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true
                    },
                    "orderBy": {
                      "location": "query",
                      "description": "Optional. Field to sort by.",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+parent}/discoveryClients",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "ListDiscoveryClientsResponse"
                  },
                  "description": "Lists all the discovery clients in a given project and location.",
                  "id": "migrationcenter.projects.locations.discoveryClients.list"
                },
                "get": {
                  "path": "v1alpha1/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "type": "string",
                      "description": "Required. The discovery client name.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/discoveryClients/[^/]+$",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/discoveryClients/{discoveryClientsId}",
                  "httpMethod": "GET",
                  "description": "Gets the details of a discovery client.",
                  "id": "migrationcenter.projects.locations.discoveryClients.get",
                  "response": {
                    "$ref": "DiscoveryClient"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "sendHeartbeat": {
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/discoveryClients/{discoveryClientsId}:sendHeartbeat",
                  "httpMethod": "POST",
                  "path": "v1alpha1/{+name}:sendHeartbeat",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "type": "string",
                      "location": "path",
                      "description": "Required. The discovery client name.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/discoveryClients/[^/]+$",
                      "required": true
                    }
                  },
                  "request": {
                    "$ref": "SendDiscoveryClientHeartbeatRequest"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Sends a discovery client heartbeat. Healthy clients are expected to send heartbeats regularly (normally every few minutes).",
                  "id": "migrationcenter.projects.locations.discoveryClients.sendHeartbeat",
                  "response": {
                    "$ref": "Operation"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "canonicalName": "Migration Center API",
  "mtlsRootUrl": "https://migrationcenter.mtls.googleapis.com/",
  "documentationLink": "https://cloud.google.com/migration-center",
  "title": "Migration Center API",
  "kind": "discovery#restDescription",
  "version": "v1alpha1",
  "batchPath": "batch",
  "revision": "20260813",
  "version_module": true,
  "parameters": {
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "alt": {
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "type": "string",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "description": "Data format for response.",
      "default": "json",
      "location": "query"
    },
    "quotaUser": {
      "location": "query",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "type": "string"
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query",
      "type": "boolean"
    },
    "fields": {
      "type": "string",
      "location": "query",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "$.xgafv": {
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "enum": [
        "1",
        "2"
      ],
      "type": "string",
      "description": "V1 error format.",
      "location": "query"
    },
    "upload_protocol": {
      "type": "string",
      "location": "query",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
    },
    "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"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "type": "string",
      "location": "query",
      "description": "OAuth 2.0 token for the current user."
    },
    "uploadType": {
      "location": "query",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "type": "string"
    }
  },
  "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."
        }
      }
    }
  }
}
