From a0b09622e3a8b09b47a02c8bfb3be86d83a00682 Mon Sep 17 00:00:00 2001 From: Google APIs Date: Wed, 9 Jan 2019 00:36:31 +0000 Subject: [PATCH] Autogenerated update (2019-01-09) Update: - speech_v1 --- api_names_out.yaml | 1947 +++++++ .../google/apis/containeranalysis_v1alpha1.rb | 35 + .../containeranalysis_v1alpha1/classes.rb | 2780 ++++++++++ .../representations.rb | 1106 ++++ .../containeranalysis_v1alpha1/service.rb | 1329 +++++ .../google/apis/containeranalysis_v1beta1.rb | 35 + .../apis/containeranalysis_v1beta1/classes.rb | 2702 ++++++++++ .../representations.rb | 1152 +++++ .../apis/containeranalysis_v1beta1/service.rb | 932 ++++ generated/google/apis/libraryagent_v1.rb | 34 + .../google/apis/libraryagent_v1/classes.rb | 151 + .../apis/libraryagent_v1/representations.rb | 86 + .../google/apis/libraryagent_v1/service.rb | 265 + .../google/apis/remotebuildexecution_v1.rb | 34 + .../apis/remotebuildexecution_v1/classes.rb | 3858 ++++++++++++++ .../representations.rb | 1196 +++++ .../apis/remotebuildexecution_v1/service.rb | 374 ++ .../apis/remotebuildexecution_v1alpha.rb | 34 + .../remotebuildexecution_v1alpha/classes.rb | 3709 ++++++++++++++ .../representations.rb | 1113 ++++ .../remotebuildexecution_v1alpha/service.rb | 400 ++ .../google/apis/remotebuildexecution_v2.rb | 34 + .../apis/remotebuildexecution_v2/classes.rb | 4460 +++++++++++++++++ .../representations.rb | 1431 ++++++ .../apis/remotebuildexecution_v2/service.rb | 542 ++ generated/google/apis/speech_v1.rb | 2 +- generated/google/apis/speech_v1/classes.rb | 20 + .../google/apis/speech_v1/representations.rb | 2 + generated/google/apis/speech_v1/service.rb | 111 + 29 files changed, 29873 insertions(+), 1 deletion(-) create mode 100644 generated/google/apis/containeranalysis_v1alpha1.rb create mode 100644 generated/google/apis/containeranalysis_v1alpha1/classes.rb create mode 100644 generated/google/apis/containeranalysis_v1alpha1/representations.rb create mode 100644 generated/google/apis/containeranalysis_v1alpha1/service.rb create mode 100644 generated/google/apis/containeranalysis_v1beta1.rb create mode 100644 generated/google/apis/containeranalysis_v1beta1/classes.rb create mode 100644 generated/google/apis/containeranalysis_v1beta1/representations.rb create mode 100644 generated/google/apis/containeranalysis_v1beta1/service.rb create mode 100644 generated/google/apis/libraryagent_v1.rb create mode 100644 generated/google/apis/libraryagent_v1/classes.rb create mode 100644 generated/google/apis/libraryagent_v1/representations.rb create mode 100644 generated/google/apis/libraryagent_v1/service.rb create mode 100644 generated/google/apis/remotebuildexecution_v1.rb create mode 100644 generated/google/apis/remotebuildexecution_v1/classes.rb create mode 100644 generated/google/apis/remotebuildexecution_v1/representations.rb create mode 100644 generated/google/apis/remotebuildexecution_v1/service.rb create mode 100644 generated/google/apis/remotebuildexecution_v1alpha.rb create mode 100644 generated/google/apis/remotebuildexecution_v1alpha/classes.rb create mode 100644 generated/google/apis/remotebuildexecution_v1alpha/representations.rb create mode 100644 generated/google/apis/remotebuildexecution_v1alpha/service.rb create mode 100644 generated/google/apis/remotebuildexecution_v2.rb create mode 100644 generated/google/apis/remotebuildexecution_v2/classes.rb create mode 100644 generated/google/apis/remotebuildexecution_v2/representations.rb create mode 100644 generated/google/apis/remotebuildexecution_v2/service.rb diff --git a/api_names_out.yaml b/api_names_out.yaml index 35f22ebb8..b5962b7e4 100644 --- a/api_names_out.yaml +++ b/api_names_out.yaml @@ -38672,6 +38672,820 @@ "/container:v1beta1/fields": fields "/container:v1beta1/key": key "/container:v1beta1/quotaUser": quota_user +"/containeranalysis:v1alpha1/Artifact": artifact +"/containeranalysis:v1alpha1/Artifact/checksum": checksum +"/containeranalysis:v1alpha1/Artifact/id": id +"/containeranalysis:v1alpha1/Artifact/name": name +"/containeranalysis:v1alpha1/Artifact/names": names +"/containeranalysis:v1alpha1/Artifact/names/name": name +"/containeranalysis:v1alpha1/Attestation": attestation +"/containeranalysis:v1alpha1/Attestation/pgpSignedAttestation": pgp_signed_attestation +"/containeranalysis:v1alpha1/AttestationAuthority": attestation_authority +"/containeranalysis:v1alpha1/AttestationAuthority/hint": hint +"/containeranalysis:v1alpha1/AttestationAuthorityHint": attestation_authority_hint +"/containeranalysis:v1alpha1/AttestationAuthorityHint/humanReadableName": human_readable_name +"/containeranalysis:v1alpha1/AuditConfig": audit_config +"/containeranalysis:v1alpha1/AuditConfig/auditLogConfigs": audit_log_configs +"/containeranalysis:v1alpha1/AuditConfig/auditLogConfigs/audit_log_config": audit_log_config +"/containeranalysis:v1alpha1/AuditConfig/service": service +"/containeranalysis:v1alpha1/AuditLogConfig": audit_log_config +"/containeranalysis:v1alpha1/AuditLogConfig/exemptedMembers": exempted_members +"/containeranalysis:v1alpha1/AuditLogConfig/exemptedMembers/exempted_member": exempted_member +"/containeranalysis:v1alpha1/AuditLogConfig/logType": log_type +"/containeranalysis:v1alpha1/Basis": basis +"/containeranalysis:v1alpha1/Basis/fingerprint": fingerprint +"/containeranalysis:v1alpha1/Basis/resourceUrl": resource_url +"/containeranalysis:v1alpha1/Binding": binding +"/containeranalysis:v1alpha1/Binding/condition": condition +"/containeranalysis:v1alpha1/Binding/members": members +"/containeranalysis:v1alpha1/Binding/members/member": member +"/containeranalysis:v1alpha1/Binding/role": role +"/containeranalysis:v1alpha1/BuildDetails": build_details +"/containeranalysis:v1alpha1/BuildDetails/provenance": provenance +"/containeranalysis:v1alpha1/BuildDetails/provenanceBytes": provenance_bytes +"/containeranalysis:v1alpha1/BuildProvenance": build_provenance +"/containeranalysis:v1alpha1/BuildProvenance/buildOptions": build_options +"/containeranalysis:v1alpha1/BuildProvenance/buildOptions/build_option": build_option +"/containeranalysis:v1alpha1/BuildProvenance/builderVersion": builder_version +"/containeranalysis:v1alpha1/BuildProvenance/builtArtifacts": built_artifacts +"/containeranalysis:v1alpha1/BuildProvenance/builtArtifacts/built_artifact": built_artifact +"/containeranalysis:v1alpha1/BuildProvenance/commands": commands +"/containeranalysis:v1alpha1/BuildProvenance/commands/command": command +"/containeranalysis:v1alpha1/BuildProvenance/createTime": create_time +"/containeranalysis:v1alpha1/BuildProvenance/creator": creator +"/containeranalysis:v1alpha1/BuildProvenance/finishTime": finish_time +"/containeranalysis:v1alpha1/BuildProvenance/id": id +"/containeranalysis:v1alpha1/BuildProvenance/logsBucket": logs_bucket +"/containeranalysis:v1alpha1/BuildProvenance/projectId": project_id +"/containeranalysis:v1alpha1/BuildProvenance/sourceProvenance": source_provenance +"/containeranalysis:v1alpha1/BuildProvenance/startTime": start_time +"/containeranalysis:v1alpha1/BuildProvenance/triggerId": trigger_id +"/containeranalysis:v1alpha1/BuildSignature": build_signature +"/containeranalysis:v1alpha1/BuildSignature/keyId": key_id +"/containeranalysis:v1alpha1/BuildSignature/keyType": key_type +"/containeranalysis:v1alpha1/BuildSignature/publicKey": public_key +"/containeranalysis:v1alpha1/BuildSignature/signature": signature +"/containeranalysis:v1alpha1/BuildType": build_type +"/containeranalysis:v1alpha1/BuildType/builderVersion": builder_version +"/containeranalysis:v1alpha1/BuildType/signature": signature +"/containeranalysis:v1alpha1/Command": command +"/containeranalysis:v1alpha1/Command/args": args +"/containeranalysis:v1alpha1/Command/args/arg": arg +"/containeranalysis:v1alpha1/Command/dir": dir +"/containeranalysis:v1alpha1/Command/env": env +"/containeranalysis:v1alpha1/Command/env/env": env +"/containeranalysis:v1alpha1/Command/id": id +"/containeranalysis:v1alpha1/Command/name": name +"/containeranalysis:v1alpha1/Command/waitFor": wait_for +"/containeranalysis:v1alpha1/Command/waitFor/wait_for": wait_for +"/containeranalysis:v1alpha1/CreateOperationRequest": create_operation_request +"/containeranalysis:v1alpha1/CreateOperationRequest/operation": operation +"/containeranalysis:v1alpha1/CreateOperationRequest/operationId": operation_id +"/containeranalysis:v1alpha1/Deployable": deployable +"/containeranalysis:v1alpha1/Deployable/resourceUri": resource_uri +"/containeranalysis:v1alpha1/Deployable/resourceUri/resource_uri": resource_uri +"/containeranalysis:v1alpha1/Deployment": deployment +"/containeranalysis:v1alpha1/Deployment/address": address +"/containeranalysis:v1alpha1/Deployment/config": config +"/containeranalysis:v1alpha1/Deployment/deployTime": deploy_time +"/containeranalysis:v1alpha1/Deployment/platform": platform +"/containeranalysis:v1alpha1/Deployment/resourceUri": resource_uri +"/containeranalysis:v1alpha1/Deployment/resourceUri/resource_uri": resource_uri +"/containeranalysis:v1alpha1/Deployment/undeployTime": undeploy_time +"/containeranalysis:v1alpha1/Deployment/userEmail": user_email +"/containeranalysis:v1alpha1/Derived": derived +"/containeranalysis:v1alpha1/Derived/baseResourceUrl": base_resource_url +"/containeranalysis:v1alpha1/Derived/distance": distance +"/containeranalysis:v1alpha1/Derived/fingerprint": fingerprint +"/containeranalysis:v1alpha1/Derived/layerInfo": layer_info +"/containeranalysis:v1alpha1/Derived/layerInfo/layer_info": layer_info +"/containeranalysis:v1alpha1/Detail": detail +"/containeranalysis:v1alpha1/Detail/cpeUri": cpe_uri +"/containeranalysis:v1alpha1/Detail/description": description +"/containeranalysis:v1alpha1/Detail/fixedLocation": fixed_location +"/containeranalysis:v1alpha1/Detail/isObsolete": is_obsolete +"/containeranalysis:v1alpha1/Detail/maxAffectedVersion": max_affected_version +"/containeranalysis:v1alpha1/Detail/minAffectedVersion": min_affected_version +"/containeranalysis:v1alpha1/Detail/package": package +"/containeranalysis:v1alpha1/Detail/packageType": package_type +"/containeranalysis:v1alpha1/Detail/severityName": severity_name +"/containeranalysis:v1alpha1/Discovered": discovered +"/containeranalysis:v1alpha1/Discovered/analysisStatus": analysis_status +"/containeranalysis:v1alpha1/Discovered/analysisStatusError": analysis_status_error +"/containeranalysis:v1alpha1/Discovered/continuousAnalysis": continuous_analysis +"/containeranalysis:v1alpha1/Discovered/operation": operation +"/containeranalysis:v1alpha1/Discovery": discovery +"/containeranalysis:v1alpha1/Discovery/analysisKind": analysis_kind +"/containeranalysis:v1alpha1/Distribution": distribution +"/containeranalysis:v1alpha1/Distribution/architecture": architecture +"/containeranalysis:v1alpha1/Distribution/cpeUri": cpe_uri +"/containeranalysis:v1alpha1/Distribution/description": description +"/containeranalysis:v1alpha1/Distribution/latestVersion": latest_version +"/containeranalysis:v1alpha1/Distribution/maintainer": maintainer +"/containeranalysis:v1alpha1/Distribution/url": url +"/containeranalysis:v1alpha1/Empty": empty +"/containeranalysis:v1alpha1/Expr": expr +"/containeranalysis:v1alpha1/Expr/description": description +"/containeranalysis:v1alpha1/Expr/expression": expression +"/containeranalysis:v1alpha1/Expr/location": location +"/containeranalysis:v1alpha1/Expr/title": title +"/containeranalysis:v1alpha1/FileHashes": file_hashes +"/containeranalysis:v1alpha1/FileHashes/fileHash": file_hash +"/containeranalysis:v1alpha1/FileHashes/fileHash/file_hash": file_hash +"/containeranalysis:v1alpha1/Fingerprint": fingerprint +"/containeranalysis:v1alpha1/Fingerprint/v1Name": v1_name +"/containeranalysis:v1alpha1/Fingerprint/v2Blob": v2_blob +"/containeranalysis:v1alpha1/Fingerprint/v2Blob/v2_blob": v2_blob +"/containeranalysis:v1alpha1/Fingerprint/v2Name": v2_name +"/containeranalysis:v1alpha1/GetIamPolicyRequest": get_iam_policy_request +"/containeranalysis:v1alpha1/GetVulnzOccurrencesSummaryResponse": get_vulnz_occurrences_summary_response +"/containeranalysis:v1alpha1/GetVulnzOccurrencesSummaryResponse/counts": counts +"/containeranalysis:v1alpha1/GetVulnzOccurrencesSummaryResponse/counts/count": count +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1AliasContext": google_devtools_containeranalysis_v1alpha1_alias_context +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1AliasContext/kind": kind +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1AliasContext/name": name +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContext": google_devtools_containeranalysis_v1alpha1_cloud_repo_source_context +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContext/aliasContext": alias_context +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContext/repoId": repo_id +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContext/revisionId": revision_id +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContext": google_devtools_containeranalysis_v1alpha1_gerrit_source_context +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContext/aliasContext": alias_context +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContext/gerritProject": gerrit_project +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContext/hostUri": host_uri +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContext/revisionId": revision_id +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1GitSourceContext": google_devtools_containeranalysis_v1alpha1_git_source_context +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1GitSourceContext/revisionId": revision_id +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1GitSourceContext/url": url +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata": google_devtools_containeranalysis_v1alpha1_operation_metadata +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata/createTime": create_time +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata/endTime": end_time +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1ProjectRepoId": google_devtools_containeranalysis_v1alpha1_project_repo_id +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1ProjectRepoId/projectId": project_id +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1ProjectRepoId/repoName": repo_name +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1RepoId": google_devtools_containeranalysis_v1alpha1_repo_id +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1RepoId/projectRepoId": project_repo_id +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1RepoId/uid": uid +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1SourceContext": google_devtools_containeranalysis_v1alpha1_source_context +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1SourceContext/cloudRepo": cloud_repo +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1SourceContext/gerrit": gerrit +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1SourceContext/git": git +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1SourceContext/labels": labels +"/containeranalysis:v1alpha1/GoogleDevtoolsContaineranalysisV1alpha1SourceContext/labels/label": label +"/containeranalysis:v1alpha1/Hash": hash_prop +"/containeranalysis:v1alpha1/Hash/type": type +"/containeranalysis:v1alpha1/Hash/value": value +"/containeranalysis:v1alpha1/Installation": installation +"/containeranalysis:v1alpha1/Installation/location": location +"/containeranalysis:v1alpha1/Installation/location/location": location +"/containeranalysis:v1alpha1/Installation/name": name +"/containeranalysis:v1alpha1/Layer": layer +"/containeranalysis:v1alpha1/Layer/arguments": arguments +"/containeranalysis:v1alpha1/Layer/directive": directive +"/containeranalysis:v1alpha1/ListNoteOccurrencesResponse": list_note_occurrences_response +"/containeranalysis:v1alpha1/ListNoteOccurrencesResponse/nextPageToken": next_page_token +"/containeranalysis:v1alpha1/ListNoteOccurrencesResponse/occurrences": occurrences +"/containeranalysis:v1alpha1/ListNoteOccurrencesResponse/occurrences/occurrence": occurrence +"/containeranalysis:v1alpha1/ListNotesResponse": list_notes_response +"/containeranalysis:v1alpha1/ListNotesResponse/nextPageToken": next_page_token +"/containeranalysis:v1alpha1/ListNotesResponse/notes": notes +"/containeranalysis:v1alpha1/ListNotesResponse/notes/note": note +"/containeranalysis:v1alpha1/ListOccurrencesResponse": list_occurrences_response +"/containeranalysis:v1alpha1/ListOccurrencesResponse/nextPageToken": next_page_token +"/containeranalysis:v1alpha1/ListOccurrencesResponse/occurrences": occurrences +"/containeranalysis:v1alpha1/ListOccurrencesResponse/occurrences/occurrence": occurrence +"/containeranalysis:v1alpha1/ListScanConfigsResponse": list_scan_configs_response +"/containeranalysis:v1alpha1/ListScanConfigsResponse/nextPageToken": next_page_token +"/containeranalysis:v1alpha1/ListScanConfigsResponse/scanConfigs": scan_configs +"/containeranalysis:v1alpha1/ListScanConfigsResponse/scanConfigs/scan_config": scan_config +"/containeranalysis:v1alpha1/Location": location +"/containeranalysis:v1alpha1/Location/cpeUri": cpe_uri +"/containeranalysis:v1alpha1/Location/path": path +"/containeranalysis:v1alpha1/Location/version": version +"/containeranalysis:v1alpha1/Note": note +"/containeranalysis:v1alpha1/Note/attestationAuthority": attestation_authority +"/containeranalysis:v1alpha1/Note/baseImage": base_image +"/containeranalysis:v1alpha1/Note/buildType": build_type +"/containeranalysis:v1alpha1/Note/createTime": create_time +"/containeranalysis:v1alpha1/Note/deployable": deployable +"/containeranalysis:v1alpha1/Note/discovery": discovery +"/containeranalysis:v1alpha1/Note/expirationTime": expiration_time +"/containeranalysis:v1alpha1/Note/kind": kind +"/containeranalysis:v1alpha1/Note/longDescription": long_description +"/containeranalysis:v1alpha1/Note/name": name +"/containeranalysis:v1alpha1/Note/package": package +"/containeranalysis:v1alpha1/Note/relatedUrl": related_url +"/containeranalysis:v1alpha1/Note/relatedUrl/related_url": related_url +"/containeranalysis:v1alpha1/Note/shortDescription": short_description +"/containeranalysis:v1alpha1/Note/updateTime": update_time +"/containeranalysis:v1alpha1/Note/vulnerabilityType": vulnerability_type +"/containeranalysis:v1alpha1/Occurrence": occurrence +"/containeranalysis:v1alpha1/Occurrence/attestation": attestation +"/containeranalysis:v1alpha1/Occurrence/buildDetails": build_details +"/containeranalysis:v1alpha1/Occurrence/createTime": create_time +"/containeranalysis:v1alpha1/Occurrence/deployment": deployment +"/containeranalysis:v1alpha1/Occurrence/derivedImage": derived_image +"/containeranalysis:v1alpha1/Occurrence/discovered": discovered +"/containeranalysis:v1alpha1/Occurrence/installation": installation +"/containeranalysis:v1alpha1/Occurrence/kind": kind +"/containeranalysis:v1alpha1/Occurrence/name": name +"/containeranalysis:v1alpha1/Occurrence/noteName": note_name +"/containeranalysis:v1alpha1/Occurrence/remediation": remediation +"/containeranalysis:v1alpha1/Occurrence/resource": resource +"/containeranalysis:v1alpha1/Occurrence/resourceUrl": resource_url +"/containeranalysis:v1alpha1/Occurrence/updateTime": update_time +"/containeranalysis:v1alpha1/Occurrence/vulnerabilityDetails": vulnerability_details +"/containeranalysis:v1alpha1/Operation": operation +"/containeranalysis:v1alpha1/Operation/done": done +"/containeranalysis:v1alpha1/Operation/error": error +"/containeranalysis:v1alpha1/Operation/metadata": metadata +"/containeranalysis:v1alpha1/Operation/metadata/metadatum": metadatum +"/containeranalysis:v1alpha1/Operation/name": name +"/containeranalysis:v1alpha1/Operation/response": response +"/containeranalysis:v1alpha1/Operation/response/response": response +"/containeranalysis:v1alpha1/Package": package +"/containeranalysis:v1alpha1/Package/distribution": distribution +"/containeranalysis:v1alpha1/Package/distribution/distribution": distribution +"/containeranalysis:v1alpha1/Package/name": name +"/containeranalysis:v1alpha1/PackageIssue": package_issue +"/containeranalysis:v1alpha1/PackageIssue/affectedLocation": affected_location +"/containeranalysis:v1alpha1/PackageIssue/fixedLocation": fixed_location +"/containeranalysis:v1alpha1/PackageIssue/severityName": severity_name +"/containeranalysis:v1alpha1/PgpSignedAttestation": pgp_signed_attestation +"/containeranalysis:v1alpha1/PgpSignedAttestation/contentType": content_type +"/containeranalysis:v1alpha1/PgpSignedAttestation/pgpKeyId": pgp_key_id +"/containeranalysis:v1alpha1/PgpSignedAttestation/signature": signature +"/containeranalysis:v1alpha1/Policy": policy +"/containeranalysis:v1alpha1/Policy/auditConfigs": audit_configs +"/containeranalysis:v1alpha1/Policy/auditConfigs/audit_config": audit_config +"/containeranalysis:v1alpha1/Policy/bindings": bindings +"/containeranalysis:v1alpha1/Policy/bindings/binding": binding +"/containeranalysis:v1alpha1/Policy/etag": etag +"/containeranalysis:v1alpha1/Policy/version": version +"/containeranalysis:v1alpha1/RelatedUrl": related_url +"/containeranalysis:v1alpha1/RelatedUrl/label": label +"/containeranalysis:v1alpha1/RelatedUrl/url": url +"/containeranalysis:v1alpha1/RepoSource": repo_source +"/containeranalysis:v1alpha1/RepoSource/branchName": branch_name +"/containeranalysis:v1alpha1/RepoSource/commitSha": commit_sha +"/containeranalysis:v1alpha1/RepoSource/projectId": project_id +"/containeranalysis:v1alpha1/RepoSource/repoName": repo_name +"/containeranalysis:v1alpha1/RepoSource/tagName": tag_name +"/containeranalysis:v1alpha1/Resource": resource +"/containeranalysis:v1alpha1/Resource/contentHash": content_hash +"/containeranalysis:v1alpha1/Resource/name": name +"/containeranalysis:v1alpha1/Resource/uri": uri +"/containeranalysis:v1alpha1/ScanConfig": scan_config +"/containeranalysis:v1alpha1/ScanConfig/createTime": create_time +"/containeranalysis:v1alpha1/ScanConfig/description": description +"/containeranalysis:v1alpha1/ScanConfig/enabled": enabled +"/containeranalysis:v1alpha1/ScanConfig/name": name +"/containeranalysis:v1alpha1/ScanConfig/updateTime": update_time +"/containeranalysis:v1alpha1/SetIamPolicyRequest": set_iam_policy_request +"/containeranalysis:v1alpha1/SetIamPolicyRequest/policy": policy +"/containeranalysis:v1alpha1/SetIamPolicyRequest/updateMask": update_mask +"/containeranalysis:v1alpha1/SeverityCount": severity_count +"/containeranalysis:v1alpha1/SeverityCount/count": count +"/containeranalysis:v1alpha1/SeverityCount/severity": severity +"/containeranalysis:v1alpha1/Source": source +"/containeranalysis:v1alpha1/Source/additionalContexts": additional_contexts +"/containeranalysis:v1alpha1/Source/additionalContexts/additional_context": additional_context +"/containeranalysis:v1alpha1/Source/artifactStorageSource": artifact_storage_source +"/containeranalysis:v1alpha1/Source/context": context +"/containeranalysis:v1alpha1/Source/fileHashes": file_hashes +"/containeranalysis:v1alpha1/Source/fileHashes/file_hash": file_hash +"/containeranalysis:v1alpha1/Source/repoSource": repo_source +"/containeranalysis:v1alpha1/Source/storageSource": storage_source +"/containeranalysis:v1alpha1/Status": status +"/containeranalysis:v1alpha1/Status/code": code +"/containeranalysis:v1alpha1/Status/details": details +"/containeranalysis:v1alpha1/Status/details/detail": detail +"/containeranalysis:v1alpha1/Status/details/detail/detail": detail +"/containeranalysis:v1alpha1/Status/message": message +"/containeranalysis:v1alpha1/StorageSource": storage_source +"/containeranalysis:v1alpha1/StorageSource/bucket": bucket +"/containeranalysis:v1alpha1/StorageSource/generation": generation +"/containeranalysis:v1alpha1/StorageSource/object": object +"/containeranalysis:v1alpha1/TestIamPermissionsRequest": test_iam_permissions_request +"/containeranalysis:v1alpha1/TestIamPermissionsRequest/permissions": permissions +"/containeranalysis:v1alpha1/TestIamPermissionsRequest/permissions/permission": permission +"/containeranalysis:v1alpha1/TestIamPermissionsResponse": test_iam_permissions_response +"/containeranalysis:v1alpha1/TestIamPermissionsResponse/permissions": permissions +"/containeranalysis:v1alpha1/TestIamPermissionsResponse/permissions/permission": permission +"/containeranalysis:v1alpha1/UpdateOperationRequest": update_operation_request +"/containeranalysis:v1alpha1/UpdateOperationRequest/operation": operation +"/containeranalysis:v1alpha1/UpdateOperationRequest/updateMask": update_mask +"/containeranalysis:v1alpha1/Version": version +"/containeranalysis:v1alpha1/Version/epoch": epoch +"/containeranalysis:v1alpha1/Version/kind": kind +"/containeranalysis:v1alpha1/Version/name": name +"/containeranalysis:v1alpha1/Version/revision": revision +"/containeranalysis:v1alpha1/VulnerabilityDetails": vulnerability_details +"/containeranalysis:v1alpha1/VulnerabilityDetails/cvssScore": cvss_score +"/containeranalysis:v1alpha1/VulnerabilityDetails/packageIssue": package_issue +"/containeranalysis:v1alpha1/VulnerabilityDetails/packageIssue/package_issue": package_issue +"/containeranalysis:v1alpha1/VulnerabilityDetails/severity": severity +"/containeranalysis:v1alpha1/VulnerabilityDetails/type": type +"/containeranalysis:v1alpha1/VulnerabilityLocation": vulnerability_location +"/containeranalysis:v1alpha1/VulnerabilityLocation/cpeUri": cpe_uri +"/containeranalysis:v1alpha1/VulnerabilityLocation/package": package +"/containeranalysis:v1alpha1/VulnerabilityLocation/version": version +"/containeranalysis:v1alpha1/VulnerabilityType": vulnerability_type +"/containeranalysis:v1alpha1/VulnerabilityType/cvssScore": cvss_score +"/containeranalysis:v1alpha1/VulnerabilityType/details": details +"/containeranalysis:v1alpha1/VulnerabilityType/details/detail": detail +"/containeranalysis:v1alpha1/VulnerabilityType/severity": severity +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.create": create_project_note +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.create/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.create/noteId": note_id +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.create/parent": parent +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.delete": delete_project_note +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.delete/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.get": get_project_note +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.get/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.getIamPolicy": get_project_note_iam_policy +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.getIamPolicy/resource": resource +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.list": list_project_notes +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.list/filter": filter +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.list/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.list/pageSize": page_size +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.list/pageToken": page_token +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.list/parent": parent +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.occurrences.list": list_project_note_occurrences +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.occurrences.list/filter": filter +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.occurrences.list/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.occurrences.list/pageSize": page_size +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.occurrences.list/pageToken": page_token +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.patch": patch_project_note +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.patch/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.patch/updateMask": update_mask +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.setIamPolicy": set_project_note_iam_policy +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.setIamPolicy/resource": resource +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.testIamPermissions": test_project_note_iam_permissions +"/containeranalysis:v1alpha1/containeranalysis.projects.notes.testIamPermissions/resource": resource +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.create": create_project_occurrence +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.create/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.create/parent": parent +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.delete": delete_project_occurrence +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.delete/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.get": get_project_occurrence +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.get/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.getIamPolicy": get_occurrence_iam_policy +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.getIamPolicy/resource": resource +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.getNotes": get_project_occurrence_notes +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.getNotes/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.getVulnerabilitySummary": get_project_occurrence_vulnerability_summary +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.getVulnerabilitySummary/filter": filter +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.getVulnerabilitySummary/parent": parent +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.list": list_project_occurrences +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.list/filter": filter +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.list/kind": kind +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.list/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.list/pageSize": page_size +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.list/pageToken": page_token +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.list/parent": parent +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.patch": patch_project_occurrence +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.patch/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.patch/updateMask": update_mask +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.setIamPolicy": set_occurrence_iam_policy +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.setIamPolicy/resource": resource +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.testIamPermissions": test_occurrence_iam_permissions +"/containeranalysis:v1alpha1/containeranalysis.projects.occurrences.testIamPermissions/resource": resource +"/containeranalysis:v1alpha1/containeranalysis.projects.operations.create": create_operation +"/containeranalysis:v1alpha1/containeranalysis.projects.operations.create/parent": parent +"/containeranalysis:v1alpha1/containeranalysis.projects.operations.patch": patch_project_operation +"/containeranalysis:v1alpha1/containeranalysis.projects.operations.patch/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.scanConfigs.get": get_project_scan_config +"/containeranalysis:v1alpha1/containeranalysis.projects.scanConfigs.get/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.scanConfigs.list": list_project_scan_configs +"/containeranalysis:v1alpha1/containeranalysis.projects.scanConfigs.list/filter": filter +"/containeranalysis:v1alpha1/containeranalysis.projects.scanConfigs.list/pageSize": page_size +"/containeranalysis:v1alpha1/containeranalysis.projects.scanConfigs.list/pageToken": page_token +"/containeranalysis:v1alpha1/containeranalysis.projects.scanConfigs.list/parent": parent +"/containeranalysis:v1alpha1/containeranalysis.projects.scanConfigs.patch": patch_project_scan_config +"/containeranalysis:v1alpha1/containeranalysis.projects.scanConfigs.patch/name": name +"/containeranalysis:v1alpha1/containeranalysis.projects.scanConfigs.patch/updateMask": update_mask +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.create": create_provider_note +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.create/name": name +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.create/noteId": note_id +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.create/parent": parent +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.delete": delete_provider_note +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.delete/name": name +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.get": get_provider_note +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.get/name": name +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.getIamPolicy": get_provider_note_iam_policy +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.getIamPolicy/resource": resource +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.list": list_provider_notes +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.list/filter": filter +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.list/name": name +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.list/pageSize": page_size +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.list/pageToken": page_token +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.list/parent": parent +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.occurrences.list": list_provider_note_occurrences +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.occurrences.list/filter": filter +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.occurrences.list/name": name +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.occurrences.list/pageSize": page_size +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.occurrences.list/pageToken": page_token +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.patch": patch_provider_note +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.patch/name": name +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.patch/updateMask": update_mask +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.setIamPolicy": set_provider_note_iam_policy +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.setIamPolicy/resource": resource +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.testIamPermissions": test_provider_note_iam_permissions +"/containeranalysis:v1alpha1/containeranalysis.providers.notes.testIamPermissions/resource": resource +"/containeranalysis:v1alpha1/fields": fields +"/containeranalysis:v1alpha1/key": key +"/containeranalysis:v1alpha1/quotaUser": quota_user +"/containeranalysis:v1beta1/AliasContext": alias_context +"/containeranalysis:v1beta1/AliasContext/kind": kind +"/containeranalysis:v1beta1/AliasContext/name": name +"/containeranalysis:v1beta1/Artifact": artifact +"/containeranalysis:v1beta1/Artifact/checksum": checksum +"/containeranalysis:v1beta1/Artifact/id": id +"/containeranalysis:v1beta1/Artifact/names": names +"/containeranalysis:v1beta1/Artifact/names/name": name +"/containeranalysis:v1beta1/Attestation": attestation +"/containeranalysis:v1beta1/Attestation/pgpSignedAttestation": pgp_signed_attestation +"/containeranalysis:v1beta1/AuditConfig": audit_config +"/containeranalysis:v1beta1/AuditConfig/auditLogConfigs": audit_log_configs +"/containeranalysis:v1beta1/AuditConfig/auditLogConfigs/audit_log_config": audit_log_config +"/containeranalysis:v1beta1/AuditConfig/service": service +"/containeranalysis:v1beta1/AuditLogConfig": audit_log_config +"/containeranalysis:v1beta1/AuditLogConfig/exemptedMembers": exempted_members +"/containeranalysis:v1beta1/AuditLogConfig/exemptedMembers/exempted_member": exempted_member +"/containeranalysis:v1beta1/AuditLogConfig/logType": log_type +"/containeranalysis:v1beta1/Authority": authority +"/containeranalysis:v1beta1/Authority/hint": hint +"/containeranalysis:v1beta1/Basis": basis +"/containeranalysis:v1beta1/Basis/fingerprint": fingerprint +"/containeranalysis:v1beta1/Basis/resourceUrl": resource_url +"/containeranalysis:v1beta1/BatchCreateNotesRequest": batch_create_notes_request +"/containeranalysis:v1beta1/BatchCreateNotesRequest/notes": notes +"/containeranalysis:v1beta1/BatchCreateNotesRequest/notes/note": note +"/containeranalysis:v1beta1/BatchCreateNotesResponse": batch_create_notes_response +"/containeranalysis:v1beta1/BatchCreateNotesResponse/notes": notes +"/containeranalysis:v1beta1/BatchCreateNotesResponse/notes/note": note +"/containeranalysis:v1beta1/BatchCreateOccurrencesRequest": batch_create_occurrences_request +"/containeranalysis:v1beta1/BatchCreateOccurrencesRequest/occurrences": occurrences +"/containeranalysis:v1beta1/BatchCreateOccurrencesRequest/occurrences/occurrence": occurrence +"/containeranalysis:v1beta1/BatchCreateOccurrencesResponse": batch_create_occurrences_response +"/containeranalysis:v1beta1/BatchCreateOccurrencesResponse/occurrences": occurrences +"/containeranalysis:v1beta1/BatchCreateOccurrencesResponse/occurrences/occurrence": occurrence +"/containeranalysis:v1beta1/Binding": binding +"/containeranalysis:v1beta1/Binding/condition": condition +"/containeranalysis:v1beta1/Binding/members": members +"/containeranalysis:v1beta1/Binding/members/member": member +"/containeranalysis:v1beta1/Binding/role": role +"/containeranalysis:v1beta1/Build": build +"/containeranalysis:v1beta1/Build/builderVersion": builder_version +"/containeranalysis:v1beta1/Build/signature": signature +"/containeranalysis:v1beta1/BuildProvenance": build_provenance +"/containeranalysis:v1beta1/BuildProvenance/buildOptions": build_options +"/containeranalysis:v1beta1/BuildProvenance/buildOptions/build_option": build_option +"/containeranalysis:v1beta1/BuildProvenance/builderVersion": builder_version +"/containeranalysis:v1beta1/BuildProvenance/builtArtifacts": built_artifacts +"/containeranalysis:v1beta1/BuildProvenance/builtArtifacts/built_artifact": built_artifact +"/containeranalysis:v1beta1/BuildProvenance/commands": commands +"/containeranalysis:v1beta1/BuildProvenance/commands/command": command +"/containeranalysis:v1beta1/BuildProvenance/createTime": create_time +"/containeranalysis:v1beta1/BuildProvenance/creator": creator +"/containeranalysis:v1beta1/BuildProvenance/endTime": end_time +"/containeranalysis:v1beta1/BuildProvenance/id": id +"/containeranalysis:v1beta1/BuildProvenance/logsUri": logs_uri +"/containeranalysis:v1beta1/BuildProvenance/projectId": project_id +"/containeranalysis:v1beta1/BuildProvenance/sourceProvenance": source_provenance +"/containeranalysis:v1beta1/BuildProvenance/startTime": start_time +"/containeranalysis:v1beta1/BuildProvenance/triggerId": trigger_id +"/containeranalysis:v1beta1/BuildSignature": build_signature +"/containeranalysis:v1beta1/BuildSignature/keyId": key_id +"/containeranalysis:v1beta1/BuildSignature/keyType": key_type +"/containeranalysis:v1beta1/BuildSignature/publicKey": public_key +"/containeranalysis:v1beta1/BuildSignature/signature": signature +"/containeranalysis:v1beta1/CloudRepoSourceContext": cloud_repo_source_context +"/containeranalysis:v1beta1/CloudRepoSourceContext/aliasContext": alias_context +"/containeranalysis:v1beta1/CloudRepoSourceContext/repoId": repo_id +"/containeranalysis:v1beta1/CloudRepoSourceContext/revisionId": revision_id +"/containeranalysis:v1beta1/Command": command +"/containeranalysis:v1beta1/Command/args": args +"/containeranalysis:v1beta1/Command/args/arg": arg +"/containeranalysis:v1beta1/Command/dir": dir +"/containeranalysis:v1beta1/Command/env": env +"/containeranalysis:v1beta1/Command/env/env": env +"/containeranalysis:v1beta1/Command/id": id +"/containeranalysis:v1beta1/Command/name": name +"/containeranalysis:v1beta1/Command/waitFor": wait_for +"/containeranalysis:v1beta1/Command/waitFor/wait_for": wait_for +"/containeranalysis:v1beta1/Deployable": deployable +"/containeranalysis:v1beta1/Deployable/resourceUri": resource_uri +"/containeranalysis:v1beta1/Deployable/resourceUri/resource_uri": resource_uri +"/containeranalysis:v1beta1/Deployment": deployment +"/containeranalysis:v1beta1/Deployment/address": address +"/containeranalysis:v1beta1/Deployment/config": config +"/containeranalysis:v1beta1/Deployment/deployTime": deploy_time +"/containeranalysis:v1beta1/Deployment/platform": platform +"/containeranalysis:v1beta1/Deployment/resourceUri": resource_uri +"/containeranalysis:v1beta1/Deployment/resourceUri/resource_uri": resource_uri +"/containeranalysis:v1beta1/Deployment/undeployTime": undeploy_time +"/containeranalysis:v1beta1/Deployment/userEmail": user_email +"/containeranalysis:v1beta1/Derived": derived +"/containeranalysis:v1beta1/Derived/baseResourceUrl": base_resource_url +"/containeranalysis:v1beta1/Derived/distance": distance +"/containeranalysis:v1beta1/Derived/fingerprint": fingerprint +"/containeranalysis:v1beta1/Derived/layerInfo": layer_info +"/containeranalysis:v1beta1/Derived/layerInfo/layer_info": layer_info +"/containeranalysis:v1beta1/Detail": detail +"/containeranalysis:v1beta1/Detail/cpeUri": cpe_uri +"/containeranalysis:v1beta1/Detail/description": description +"/containeranalysis:v1beta1/Detail/fixedLocation": fixed_location +"/containeranalysis:v1beta1/Detail/isObsolete": is_obsolete +"/containeranalysis:v1beta1/Detail/maxAffectedVersion": max_affected_version +"/containeranalysis:v1beta1/Detail/minAffectedVersion": min_affected_version +"/containeranalysis:v1beta1/Detail/package": package +"/containeranalysis:v1beta1/Detail/packageType": package_type +"/containeranalysis:v1beta1/Detail/severityName": severity_name +"/containeranalysis:v1beta1/Details": details +"/containeranalysis:v1beta1/Details/attestation": attestation +"/containeranalysis:v1beta1/Discovered": discovered +"/containeranalysis:v1beta1/Discovered/analysisStatus": analysis_status +"/containeranalysis:v1beta1/Discovered/analysisStatusError": analysis_status_error +"/containeranalysis:v1beta1/Discovered/continuousAnalysis": continuous_analysis +"/containeranalysis:v1beta1/Discovered/lastAnalysisTime": last_analysis_time +"/containeranalysis:v1beta1/Discovery": discovery +"/containeranalysis:v1beta1/Discovery/analysisKind": analysis_kind +"/containeranalysis:v1beta1/Distribution": distribution +"/containeranalysis:v1beta1/Distribution/architecture": architecture +"/containeranalysis:v1beta1/Distribution/cpeUri": cpe_uri +"/containeranalysis:v1beta1/Distribution/description": description +"/containeranalysis:v1beta1/Distribution/latestVersion": latest_version +"/containeranalysis:v1beta1/Distribution/maintainer": maintainer +"/containeranalysis:v1beta1/Distribution/url": url +"/containeranalysis:v1beta1/Empty": empty +"/containeranalysis:v1beta1/Expr": expr +"/containeranalysis:v1beta1/Expr/description": description +"/containeranalysis:v1beta1/Expr/expression": expression +"/containeranalysis:v1beta1/Expr/location": location +"/containeranalysis:v1beta1/Expr/title": title +"/containeranalysis:v1beta1/FileHashes": file_hashes +"/containeranalysis:v1beta1/FileHashes/fileHash": file_hash +"/containeranalysis:v1beta1/FileHashes/fileHash/file_hash": file_hash +"/containeranalysis:v1beta1/Fingerprint": fingerprint +"/containeranalysis:v1beta1/Fingerprint/v1Name": v1_name +"/containeranalysis:v1beta1/Fingerprint/v2Blob": v2_blob +"/containeranalysis:v1beta1/Fingerprint/v2Blob/v2_blob": v2_blob +"/containeranalysis:v1beta1/Fingerprint/v2Name": v2_name +"/containeranalysis:v1beta1/FixableTotalByDigest": fixable_total_by_digest +"/containeranalysis:v1beta1/FixableTotalByDigest/fixableCount": fixable_count +"/containeranalysis:v1beta1/FixableTotalByDigest/resource": resource +"/containeranalysis:v1beta1/FixableTotalByDigest/severity": severity +"/containeranalysis:v1beta1/FixableTotalByDigest/totalCount": total_count +"/containeranalysis:v1beta1/GerritSourceContext": gerrit_source_context +"/containeranalysis:v1beta1/GerritSourceContext/aliasContext": alias_context +"/containeranalysis:v1beta1/GerritSourceContext/gerritProject": gerrit_project +"/containeranalysis:v1beta1/GerritSourceContext/hostUri": host_uri +"/containeranalysis:v1beta1/GerritSourceContext/revisionId": revision_id +"/containeranalysis:v1beta1/GetIamPolicyRequest": get_iam_policy_request +"/containeranalysis:v1beta1/GitSourceContext": git_source_context +"/containeranalysis:v1beta1/GitSourceContext/revisionId": revision_id +"/containeranalysis:v1beta1/GitSourceContext/url": url +"/containeranalysis:v1beta1/GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata": google_devtools_containeranalysis_v1alpha1_operation_metadata +"/containeranalysis:v1beta1/GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata/createTime": create_time +"/containeranalysis:v1beta1/GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata/endTime": end_time +"/containeranalysis:v1beta1/GrafeasV1beta1BuildDetails": grafeas_v1beta1_build_details +"/containeranalysis:v1beta1/GrafeasV1beta1BuildDetails/provenance": provenance +"/containeranalysis:v1beta1/GrafeasV1beta1BuildDetails/provenanceBytes": provenance_bytes +"/containeranalysis:v1beta1/GrafeasV1beta1DeploymentDetails": grafeas_v1beta1_deployment_details +"/containeranalysis:v1beta1/GrafeasV1beta1DeploymentDetails/deployment": deployment +"/containeranalysis:v1beta1/GrafeasV1beta1DiscoveryDetails": grafeas_v1beta1_discovery_details +"/containeranalysis:v1beta1/GrafeasV1beta1DiscoveryDetails/discovered": discovered +"/containeranalysis:v1beta1/GrafeasV1beta1ImageDetails": grafeas_v1beta1_image_details +"/containeranalysis:v1beta1/GrafeasV1beta1ImageDetails/derivedImage": derived_image +"/containeranalysis:v1beta1/GrafeasV1beta1PackageDetails": grafeas_v1beta1_package_details +"/containeranalysis:v1beta1/GrafeasV1beta1PackageDetails/installation": installation +"/containeranalysis:v1beta1/GrafeasV1beta1VulnerabilityDetails": grafeas_v1beta1_vulnerability_details +"/containeranalysis:v1beta1/GrafeasV1beta1VulnerabilityDetails/cvssScore": cvss_score +"/containeranalysis:v1beta1/GrafeasV1beta1VulnerabilityDetails/longDescription": long_description +"/containeranalysis:v1beta1/GrafeasV1beta1VulnerabilityDetails/packageIssue": package_issue +"/containeranalysis:v1beta1/GrafeasV1beta1VulnerabilityDetails/packageIssue/package_issue": package_issue +"/containeranalysis:v1beta1/GrafeasV1beta1VulnerabilityDetails/relatedUrls": related_urls +"/containeranalysis:v1beta1/GrafeasV1beta1VulnerabilityDetails/relatedUrls/related_url": related_url +"/containeranalysis:v1beta1/GrafeasV1beta1VulnerabilityDetails/severity": severity +"/containeranalysis:v1beta1/GrafeasV1beta1VulnerabilityDetails/shortDescription": short_description +"/containeranalysis:v1beta1/GrafeasV1beta1VulnerabilityDetails/type": type +"/containeranalysis:v1beta1/Hash": hash_prop +"/containeranalysis:v1beta1/Hash/type": type +"/containeranalysis:v1beta1/Hash/value": value +"/containeranalysis:v1beta1/Hint": hint +"/containeranalysis:v1beta1/Hint/humanReadableName": human_readable_name +"/containeranalysis:v1beta1/Installation": installation +"/containeranalysis:v1beta1/Installation/location": location +"/containeranalysis:v1beta1/Installation/location/location": location +"/containeranalysis:v1beta1/Installation/name": name +"/containeranalysis:v1beta1/Layer": layer +"/containeranalysis:v1beta1/Layer/arguments": arguments +"/containeranalysis:v1beta1/Layer/directive": directive +"/containeranalysis:v1beta1/ListNoteOccurrencesResponse": list_note_occurrences_response +"/containeranalysis:v1beta1/ListNoteOccurrencesResponse/nextPageToken": next_page_token +"/containeranalysis:v1beta1/ListNoteOccurrencesResponse/occurrences": occurrences +"/containeranalysis:v1beta1/ListNoteOccurrencesResponse/occurrences/occurrence": occurrence +"/containeranalysis:v1beta1/ListNotesResponse": list_notes_response +"/containeranalysis:v1beta1/ListNotesResponse/nextPageToken": next_page_token +"/containeranalysis:v1beta1/ListNotesResponse/notes": notes +"/containeranalysis:v1beta1/ListNotesResponse/notes/note": note +"/containeranalysis:v1beta1/ListOccurrencesResponse": list_occurrences_response +"/containeranalysis:v1beta1/ListOccurrencesResponse/nextPageToken": next_page_token +"/containeranalysis:v1beta1/ListOccurrencesResponse/occurrences": occurrences +"/containeranalysis:v1beta1/ListOccurrencesResponse/occurrences/occurrence": occurrence +"/containeranalysis:v1beta1/ListScanConfigsResponse": list_scan_configs_response +"/containeranalysis:v1beta1/ListScanConfigsResponse/nextPageToken": next_page_token +"/containeranalysis:v1beta1/ListScanConfigsResponse/scanConfigs": scan_configs +"/containeranalysis:v1beta1/ListScanConfigsResponse/scanConfigs/scan_config": scan_config +"/containeranalysis:v1beta1/Location": location +"/containeranalysis:v1beta1/Location/cpeUri": cpe_uri +"/containeranalysis:v1beta1/Location/path": path +"/containeranalysis:v1beta1/Location/version": version +"/containeranalysis:v1beta1/Note": note +"/containeranalysis:v1beta1/Note/attestationAuthority": attestation_authority +"/containeranalysis:v1beta1/Note/baseImage": base_image +"/containeranalysis:v1beta1/Note/build": build +"/containeranalysis:v1beta1/Note/createTime": create_time +"/containeranalysis:v1beta1/Note/deployable": deployable +"/containeranalysis:v1beta1/Note/discovery": discovery +"/containeranalysis:v1beta1/Note/expirationTime": expiration_time +"/containeranalysis:v1beta1/Note/kind": kind +"/containeranalysis:v1beta1/Note/longDescription": long_description +"/containeranalysis:v1beta1/Note/name": name +"/containeranalysis:v1beta1/Note/package": package +"/containeranalysis:v1beta1/Note/relatedNoteNames": related_note_names +"/containeranalysis:v1beta1/Note/relatedNoteNames/related_note_name": related_note_name +"/containeranalysis:v1beta1/Note/relatedUrl": related_url +"/containeranalysis:v1beta1/Note/relatedUrl/related_url": related_url +"/containeranalysis:v1beta1/Note/shortDescription": short_description +"/containeranalysis:v1beta1/Note/updateTime": update_time +"/containeranalysis:v1beta1/Note/vulnerability": vulnerability +"/containeranalysis:v1beta1/Occurrence": occurrence +"/containeranalysis:v1beta1/Occurrence/attestation": attestation +"/containeranalysis:v1beta1/Occurrence/build": build +"/containeranalysis:v1beta1/Occurrence/createTime": create_time +"/containeranalysis:v1beta1/Occurrence/deployment": deployment +"/containeranalysis:v1beta1/Occurrence/derivedImage": derived_image +"/containeranalysis:v1beta1/Occurrence/discovered": discovered +"/containeranalysis:v1beta1/Occurrence/installation": installation +"/containeranalysis:v1beta1/Occurrence/kind": kind +"/containeranalysis:v1beta1/Occurrence/name": name +"/containeranalysis:v1beta1/Occurrence/noteName": note_name +"/containeranalysis:v1beta1/Occurrence/remediation": remediation +"/containeranalysis:v1beta1/Occurrence/resource": resource +"/containeranalysis:v1beta1/Occurrence/updateTime": update_time +"/containeranalysis:v1beta1/Occurrence/vulnerability": vulnerability +"/containeranalysis:v1beta1/Package": package +"/containeranalysis:v1beta1/Package/distribution": distribution +"/containeranalysis:v1beta1/Package/distribution/distribution": distribution +"/containeranalysis:v1beta1/Package/name": name +"/containeranalysis:v1beta1/PackageIssue": package_issue +"/containeranalysis:v1beta1/PackageIssue/affectedLocation": affected_location +"/containeranalysis:v1beta1/PackageIssue/fixedLocation": fixed_location +"/containeranalysis:v1beta1/PackageIssue/severityName": severity_name +"/containeranalysis:v1beta1/PgpSignedAttestation": pgp_signed_attestation +"/containeranalysis:v1beta1/PgpSignedAttestation/contentType": content_type +"/containeranalysis:v1beta1/PgpSignedAttestation/pgpKeyId": pgp_key_id +"/containeranalysis:v1beta1/PgpSignedAttestation/signature": signature +"/containeranalysis:v1beta1/Policy": policy +"/containeranalysis:v1beta1/Policy/auditConfigs": audit_configs +"/containeranalysis:v1beta1/Policy/auditConfigs/audit_config": audit_config +"/containeranalysis:v1beta1/Policy/bindings": bindings +"/containeranalysis:v1beta1/Policy/bindings/binding": binding +"/containeranalysis:v1beta1/Policy/etag": etag +"/containeranalysis:v1beta1/Policy/version": version +"/containeranalysis:v1beta1/ProjectRepoId": project_repo_id +"/containeranalysis:v1beta1/ProjectRepoId/projectId": project_id +"/containeranalysis:v1beta1/ProjectRepoId/repoName": repo_name +"/containeranalysis:v1beta1/RelatedUrl": related_url +"/containeranalysis:v1beta1/RelatedUrl/label": label +"/containeranalysis:v1beta1/RelatedUrl/url": url +"/containeranalysis:v1beta1/RepoId": repo_id +"/containeranalysis:v1beta1/RepoId/projectRepoId": project_repo_id +"/containeranalysis:v1beta1/RepoId/uid": uid +"/containeranalysis:v1beta1/Resource": resource +"/containeranalysis:v1beta1/Resource/contentHash": content_hash +"/containeranalysis:v1beta1/Resource/name": name +"/containeranalysis:v1beta1/Resource/uri": uri +"/containeranalysis:v1beta1/ScanConfig": scan_config +"/containeranalysis:v1beta1/ScanConfig/createTime": create_time +"/containeranalysis:v1beta1/ScanConfig/description": description +"/containeranalysis:v1beta1/ScanConfig/enabled": enabled +"/containeranalysis:v1beta1/ScanConfig/name": name +"/containeranalysis:v1beta1/ScanConfig/updateTime": update_time +"/containeranalysis:v1beta1/SetIamPolicyRequest": set_iam_policy_request +"/containeranalysis:v1beta1/SetIamPolicyRequest/policy": policy +"/containeranalysis:v1beta1/SetIamPolicyRequest/updateMask": update_mask +"/containeranalysis:v1beta1/Source": source +"/containeranalysis:v1beta1/Source/additionalContexts": additional_contexts +"/containeranalysis:v1beta1/Source/additionalContexts/additional_context": additional_context +"/containeranalysis:v1beta1/Source/artifactStorageSourceUri": artifact_storage_source_uri +"/containeranalysis:v1beta1/Source/context": context +"/containeranalysis:v1beta1/Source/fileHashes": file_hashes +"/containeranalysis:v1beta1/Source/fileHashes/file_hash": file_hash +"/containeranalysis:v1beta1/SourceContext": source_context +"/containeranalysis:v1beta1/SourceContext/cloudRepo": cloud_repo +"/containeranalysis:v1beta1/SourceContext/gerrit": gerrit +"/containeranalysis:v1beta1/SourceContext/git": git +"/containeranalysis:v1beta1/SourceContext/labels": labels +"/containeranalysis:v1beta1/SourceContext/labels/label": label +"/containeranalysis:v1beta1/Status": status +"/containeranalysis:v1beta1/Status/code": code +"/containeranalysis:v1beta1/Status/details": details +"/containeranalysis:v1beta1/Status/details/detail": detail +"/containeranalysis:v1beta1/Status/details/detail/detail": detail +"/containeranalysis:v1beta1/Status/message": message +"/containeranalysis:v1beta1/TestIamPermissionsRequest": test_iam_permissions_request +"/containeranalysis:v1beta1/TestIamPermissionsRequest/permissions": permissions +"/containeranalysis:v1beta1/TestIamPermissionsRequest/permissions/permission": permission +"/containeranalysis:v1beta1/TestIamPermissionsResponse": test_iam_permissions_response +"/containeranalysis:v1beta1/TestIamPermissionsResponse/permissions": permissions +"/containeranalysis:v1beta1/TestIamPermissionsResponse/permissions/permission": permission +"/containeranalysis:v1beta1/Version": version +"/containeranalysis:v1beta1/Version/epoch": epoch +"/containeranalysis:v1beta1/Version/kind": kind +"/containeranalysis:v1beta1/Version/name": name +"/containeranalysis:v1beta1/Version/revision": revision +"/containeranalysis:v1beta1/Vulnerability": vulnerability +"/containeranalysis:v1beta1/Vulnerability/cvssScore": cvss_score +"/containeranalysis:v1beta1/Vulnerability/details": details +"/containeranalysis:v1beta1/Vulnerability/details/detail": detail +"/containeranalysis:v1beta1/Vulnerability/severity": severity +"/containeranalysis:v1beta1/VulnerabilityLocation": vulnerability_location +"/containeranalysis:v1beta1/VulnerabilityLocation/cpeUri": cpe_uri +"/containeranalysis:v1beta1/VulnerabilityLocation/package": package +"/containeranalysis:v1beta1/VulnerabilityLocation/version": version +"/containeranalysis:v1beta1/VulnerabilityOccurrencesSummary": vulnerability_occurrences_summary +"/containeranalysis:v1beta1/VulnerabilityOccurrencesSummary/counts": counts +"/containeranalysis:v1beta1/VulnerabilityOccurrencesSummary/counts/count": count +"/containeranalysis:v1beta1/containeranalysis.projects.notes.batchCreate": batch_create_notes +"/containeranalysis:v1beta1/containeranalysis.projects.notes.batchCreate/parent": parent +"/containeranalysis:v1beta1/containeranalysis.projects.notes.create": create_project_note +"/containeranalysis:v1beta1/containeranalysis.projects.notes.create/noteId": note_id +"/containeranalysis:v1beta1/containeranalysis.projects.notes.create/parent": parent +"/containeranalysis:v1beta1/containeranalysis.projects.notes.delete": delete_project_note +"/containeranalysis:v1beta1/containeranalysis.projects.notes.delete/name": name +"/containeranalysis:v1beta1/containeranalysis.projects.notes.get": get_project_note +"/containeranalysis:v1beta1/containeranalysis.projects.notes.get/name": name +"/containeranalysis:v1beta1/containeranalysis.projects.notes.getIamPolicy": get_note_iam_policy +"/containeranalysis:v1beta1/containeranalysis.projects.notes.getIamPolicy/resource": resource +"/containeranalysis:v1beta1/containeranalysis.projects.notes.list": list_project_notes +"/containeranalysis:v1beta1/containeranalysis.projects.notes.list/filter": filter +"/containeranalysis:v1beta1/containeranalysis.projects.notes.list/pageSize": page_size +"/containeranalysis:v1beta1/containeranalysis.projects.notes.list/pageToken": page_token +"/containeranalysis:v1beta1/containeranalysis.projects.notes.list/parent": parent +"/containeranalysis:v1beta1/containeranalysis.projects.notes.occurrences.list": list_project_note_occurrences +"/containeranalysis:v1beta1/containeranalysis.projects.notes.occurrences.list/filter": filter +"/containeranalysis:v1beta1/containeranalysis.projects.notes.occurrences.list/name": name +"/containeranalysis:v1beta1/containeranalysis.projects.notes.occurrences.list/pageSize": page_size +"/containeranalysis:v1beta1/containeranalysis.projects.notes.occurrences.list/pageToken": page_token +"/containeranalysis:v1beta1/containeranalysis.projects.notes.patch": patch_project_note +"/containeranalysis:v1beta1/containeranalysis.projects.notes.patch/name": name +"/containeranalysis:v1beta1/containeranalysis.projects.notes.patch/updateMask": update_mask +"/containeranalysis:v1beta1/containeranalysis.projects.notes.setIamPolicy": set_note_iam_policy +"/containeranalysis:v1beta1/containeranalysis.projects.notes.setIamPolicy/resource": resource +"/containeranalysis:v1beta1/containeranalysis.projects.notes.testIamPermissions": test_note_iam_permissions +"/containeranalysis:v1beta1/containeranalysis.projects.notes.testIamPermissions/resource": resource +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.batchCreate": batch_create_occurrences +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.batchCreate/parent": parent +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.create": create_project_occurrence +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.create/parent": parent +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.delete": delete_project_occurrence +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.delete/name": name +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.get": get_project_occurrence +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.get/name": name +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.getIamPolicy": get_occurrence_iam_policy +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.getIamPolicy/resource": resource +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.getNotes": get_project_occurrence_notes +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.getNotes/name": name +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.getVulnerabilitySummary": get_project_occurrence_vulnerability_summary +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.getVulnerabilitySummary/filter": filter +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.getVulnerabilitySummary/parent": parent +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.list": list_project_occurrences +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.list/filter": filter +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.list/pageSize": page_size +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.list/pageToken": page_token +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.list/parent": parent +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.patch": patch_project_occurrence +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.patch/name": name +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.patch/updateMask": update_mask +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.setIamPolicy": set_occurrence_iam_policy +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.setIamPolicy/resource": resource +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.testIamPermissions": test_occurrence_iam_permissions +"/containeranalysis:v1beta1/containeranalysis.projects.occurrences.testIamPermissions/resource": resource +"/containeranalysis:v1beta1/containeranalysis.projects.scanConfigs.get": get_project_scan_config +"/containeranalysis:v1beta1/containeranalysis.projects.scanConfigs.get/name": name +"/containeranalysis:v1beta1/containeranalysis.projects.scanConfigs.list": list_project_scan_configs +"/containeranalysis:v1beta1/containeranalysis.projects.scanConfigs.list/filter": filter +"/containeranalysis:v1beta1/containeranalysis.projects.scanConfigs.list/pageSize": page_size +"/containeranalysis:v1beta1/containeranalysis.projects.scanConfigs.list/pageToken": page_token +"/containeranalysis:v1beta1/containeranalysis.projects.scanConfigs.list/parent": parent +"/containeranalysis:v1beta1/containeranalysis.projects.scanConfigs.update": update_project_scan_config +"/containeranalysis:v1beta1/containeranalysis.projects.scanConfigs.update/name": name +"/containeranalysis:v1beta1/fields": fields +"/containeranalysis:v1beta1/key": key +"/containeranalysis:v1beta1/quotaUser": quota_user "/content:v2.1/Account": account "/content:v2.1/Account/adsLinks": ads_links "/content:v2.1/Account/adsLinks/ads_link": ads_link @@ -74374,6 +75188,40 @@ "/language:v1beta2/language.documents.annotateText": annotate_document_text "/language:v1beta2/language.documents.classifyText": classify_document_text "/language:v1beta2/quotaUser": quota_user +"/libraryagent:v1/GoogleExampleLibraryagentV1Book": google_example_libraryagent_v1_book +"/libraryagent:v1/GoogleExampleLibraryagentV1Book/author": author +"/libraryagent:v1/GoogleExampleLibraryagentV1Book/name": name +"/libraryagent:v1/GoogleExampleLibraryagentV1Book/read": read +"/libraryagent:v1/GoogleExampleLibraryagentV1Book/title": title +"/libraryagent:v1/GoogleExampleLibraryagentV1ListBooksResponse": google_example_libraryagent_v1_list_books_response +"/libraryagent:v1/GoogleExampleLibraryagentV1ListBooksResponse/books": books +"/libraryagent:v1/GoogleExampleLibraryagentV1ListBooksResponse/books/book": book +"/libraryagent:v1/GoogleExampleLibraryagentV1ListBooksResponse/nextPageToken": next_page_token +"/libraryagent:v1/GoogleExampleLibraryagentV1ListShelvesResponse": google_example_libraryagent_v1_list_shelves_response +"/libraryagent:v1/GoogleExampleLibraryagentV1ListShelvesResponse/nextPageToken": next_page_token +"/libraryagent:v1/GoogleExampleLibraryagentV1ListShelvesResponse/shelves": shelves +"/libraryagent:v1/GoogleExampleLibraryagentV1ListShelvesResponse/shelves/shelf": shelf +"/libraryagent:v1/GoogleExampleLibraryagentV1Shelf": google_example_libraryagent_v1_shelf +"/libraryagent:v1/GoogleExampleLibraryagentV1Shelf/name": name +"/libraryagent:v1/GoogleExampleLibraryagentV1Shelf/theme": theme +"/libraryagent:v1/fields": fields +"/libraryagent:v1/key": key +"/libraryagent:v1/libraryagent.shelves.books.borrow": borrow_shelf_book +"/libraryagent:v1/libraryagent.shelves.books.borrow/name": name +"/libraryagent:v1/libraryagent.shelves.books.get": get_shelf_book +"/libraryagent:v1/libraryagent.shelves.books.get/name": name +"/libraryagent:v1/libraryagent.shelves.books.list": list_shelf_books +"/libraryagent:v1/libraryagent.shelves.books.list/pageSize": page_size +"/libraryagent:v1/libraryagent.shelves.books.list/pageToken": page_token +"/libraryagent:v1/libraryagent.shelves.books.list/parent": parent +"/libraryagent:v1/libraryagent.shelves.books.return": return_shelf_book +"/libraryagent:v1/libraryagent.shelves.books.return/name": name +"/libraryagent:v1/libraryagent.shelves.get": get_shelf +"/libraryagent:v1/libraryagent.shelves.get/name": name +"/libraryagent:v1/libraryagent.shelves.list": list_shelves +"/libraryagent:v1/libraryagent.shelves.list/pageSize": page_size +"/libraryagent:v1/libraryagent.shelves.list/pageToken": page_token +"/libraryagent:v1/quotaUser": quota_user "/licensing:v1/LicenseAssignment": license_assignment "/licensing:v1/LicenseAssignment/etags": etags "/licensing:v1/LicenseAssignment/kind": kind @@ -80875,6 +81723,1095 @@ "/redis:v1beta1/redis.projects.locations.operations.list/name": name "/redis:v1beta1/redis.projects.locations.operations.list/pageSize": page_size "/redis:v1beta1/redis.projects.locations.operations.list/pageToken": page_token +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Action": build_bazel_remote_execution_v2_action +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Action/commandDigest": command_digest +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Action/doNotCache": do_not_cache +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Action/inputRootDigest": input_root_digest +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Action/timeout": timeout +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult": build_bazel_remote_execution_v2_action_result +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/executionMetadata": execution_metadata +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/exitCode": exit_code +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/outputDirectories": output_directories +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/outputDirectories/output_directory": output_directory +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/outputDirectorySymlinks": output_directory_symlinks +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/outputDirectorySymlinks/output_directory_symlink": output_directory_symlink +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/outputFileSymlinks": output_file_symlinks +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/outputFileSymlinks/output_file_symlink": output_file_symlink +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/outputFiles": output_files +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/outputFiles/output_file": output_file +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/stderrDigest": stderr_digest +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/stderrRaw": stderr_raw +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/stdoutDigest": stdout_digest +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ActionResult/stdoutRaw": stdout_raw +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Command": build_bazel_remote_execution_v2_command +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Command/arguments": arguments +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Command/arguments/argument": argument +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Command/environmentVariables": environment_variables +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Command/environmentVariables/environment_variable": environment_variable +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Command/outputDirectories": output_directories +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Command/outputDirectories/output_directory": output_directory +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Command/outputFiles": output_files +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Command/outputFiles/output_file": output_file +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Command/platform": platform +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Command/workingDirectory": working_directory +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2CommandEnvironmentVariable": build_bazel_remote_execution_v2_command_environment_variable +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2CommandEnvironmentVariable/name": name +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2CommandEnvironmentVariable/value": value +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Digest": build_bazel_remote_execution_v2_digest +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Digest/hash": hash_prop +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Digest/sizeBytes": size_bytes +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Directory": build_bazel_remote_execution_v2_directory +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Directory/directories": directories +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Directory/directories/directory": directory +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Directory/files": files +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Directory/files/file": file +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Directory/symlinks": symlinks +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Directory/symlinks/symlink": symlink +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2DirectoryNode": build_bazel_remote_execution_v2_directory_node +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2DirectoryNode/digest": digest +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2DirectoryNode/name": name +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecuteOperationMetadata": build_bazel_remote_execution_v2_execute_operation_metadata +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecuteOperationMetadata/actionDigest": action_digest +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecuteOperationMetadata/stage": stage +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecuteOperationMetadata/stderrStreamName": stderr_stream_name +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecuteOperationMetadata/stdoutStreamName": stdout_stream_name +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecuteResponse": build_bazel_remote_execution_v2_execute_response +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecuteResponse/cachedResult": cached_result +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecuteResponse/result": result +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecuteResponse/serverLogs": server_logs +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecuteResponse/serverLogs/server_log": server_log +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecuteResponse/status": status +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecutedActionMetadata": build_bazel_remote_execution_v2_executed_action_metadata +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecutedActionMetadata/executionCompletedTimestamp": execution_completed_timestamp +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecutedActionMetadata/executionStartTimestamp": execution_start_timestamp +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecutedActionMetadata/inputFetchCompletedTimestamp": input_fetch_completed_timestamp +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecutedActionMetadata/inputFetchStartTimestamp": input_fetch_start_timestamp +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecutedActionMetadata/outputUploadCompletedTimestamp": output_upload_completed_timestamp +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecutedActionMetadata/outputUploadStartTimestamp": output_upload_start_timestamp +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecutedActionMetadata/queuedTimestamp": queued_timestamp +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecutedActionMetadata/worker": worker +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecutedActionMetadata/workerCompletedTimestamp": worker_completed_timestamp +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ExecutedActionMetadata/workerStartTimestamp": worker_start_timestamp +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2FileNode": build_bazel_remote_execution_v2_file_node +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2FileNode/digest": digest +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2FileNode/isExecutable": is_executable +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2FileNode/name": name +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2LogFile": build_bazel_remote_execution_v2_log_file +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2LogFile/digest": digest +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2LogFile/humanReadable": human_readable +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2OutputDirectory": build_bazel_remote_execution_v2_output_directory +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2OutputDirectory/path": path +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2OutputDirectory/treeDigest": tree_digest +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2OutputFile": build_bazel_remote_execution_v2_output_file +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2OutputFile/digest": digest +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2OutputFile/isExecutable": is_executable +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2OutputFile/path": path +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2OutputSymlink": build_bazel_remote_execution_v2_output_symlink +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2OutputSymlink/path": path +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2OutputSymlink/target": target +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Platform": build_bazel_remote_execution_v2_platform +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Platform/properties": properties +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Platform/properties/property": property +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2PlatformProperty": build_bazel_remote_execution_v2_platform_property +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2PlatformProperty/name": name +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2PlatformProperty/value": value +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2RequestMetadata": build_bazel_remote_execution_v2_request_metadata +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2RequestMetadata/actionId": action_id +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2RequestMetadata/correlatedInvocationsId": correlated_invocations_id +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2RequestMetadata/toolDetails": tool_details +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2RequestMetadata/toolInvocationId": tool_invocation_id +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2SymlinkNode": build_bazel_remote_execution_v2_symlink_node +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2SymlinkNode/name": name +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2SymlinkNode/target": target +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ToolDetails": build_bazel_remote_execution_v2_tool_details +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ToolDetails/toolName": tool_name +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2ToolDetails/toolVersion": tool_version +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Tree": build_bazel_remote_execution_v2_tree +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Tree/children": children +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Tree/children/child": child +"/remotebuildexecution:v1/BuildBazelRemoteExecutionV2Tree/root": root +"/remotebuildexecution:v1/GoogleBytestreamMedia": google_bytestream_media +"/remotebuildexecution:v1/GoogleBytestreamMedia/resourceName": resource_name +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildbotCommandDurations": google_devtools_remotebuildbot_command_durations +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildbotCommandDurations/dockerPrep": docker_prep +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildbotCommandDurations/download": download +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildbotCommandDurations/execution": execution +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildbotCommandDurations/isoPrepDone": iso_prep_done +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildbotCommandDurations/overall": overall +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildbotCommandDurations/stdout": stdout +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildbotCommandDurations/upload": upload +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildbotCommandEvents": google_devtools_remotebuildbot_command_events +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildbotCommandEvents/dockerCacheHit": docker_cache_hit +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildbotCommandEvents/numErrors": num_errors +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildbotCommandEvents/numWarnings": num_warnings +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest": google_devtools_remotebuildexecution_admin_v1alpha_create_instance_request +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest/instance": instance +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest/instanceId": instance_id +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest/parent": parent +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest": google_devtools_remotebuildexecution_admin_v1alpha_create_worker_pool_request +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest/parent": parent +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest/poolId": pool_id +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest/workerPool": worker_pool +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest": google_devtools_remotebuildexecution_admin_v1alpha_delete_instance_request +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest/name": name +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest": google_devtools_remotebuildexecution_admin_v1alpha_delete_worker_pool_request +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest/name": name +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest": google_devtools_remotebuildexecution_admin_v1alpha_get_instance_request +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest/name": name +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest": google_devtools_remotebuildexecution_admin_v1alpha_get_worker_pool_request +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest/name": name +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance": google_devtools_remotebuildexecution_admin_v1alpha_instance +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance/location": location +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance/name": name +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance/state": state +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest": google_devtools_remotebuildexecution_admin_v1alpha_list_instances_request +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest/parent": parent +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse": google_devtools_remotebuildexecution_admin_v1alpha_list_instances_response +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse/instances": instances +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse/instances/instance": instance +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest": google_devtools_remotebuildexecution_admin_v1alpha_list_worker_pools_request +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest/parent": parent +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse": google_devtools_remotebuildexecution_admin_v1alpha_list_worker_pools_response +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse/workerPools": worker_pools +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse/workerPools/worker_pool": worker_pool +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest": google_devtools_remotebuildexecution_admin_v1alpha_update_worker_pool_request +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest/updateMask": update_mask +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest/workerPool": worker_pool +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig": google_devtools_remotebuildexecution_admin_v1alpha_worker_config +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/diskSizeGb": disk_size_gb +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/diskType": disk_type +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/machineType": machine_type +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/minCpuPlatform": min_cpu_platform +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/reserved": reserved +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool": google_devtools_remotebuildexecution_admin_v1alpha_worker_pool +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool/name": name +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool/state": state +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool/workerConfig": worker_config +"/remotebuildexecution:v1/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool/workerCount": worker_count +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testActionResult": google_devtools_remoteexecution_v1test_action_result +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testActionResult/exitCode": exit_code +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testActionResult/outputDirectories": output_directories +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testActionResult/outputDirectories/output_directory": output_directory +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testActionResult/outputFiles": output_files +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testActionResult/outputFiles/output_file": output_file +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testActionResult/stderrDigest": stderr_digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testActionResult/stderrRaw": stderr_raw +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testActionResult/stdoutDigest": stdout_digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testActionResult/stdoutRaw": stdout_raw +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testCommand": google_devtools_remoteexecution_v1test_command +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testCommand/arguments": arguments +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testCommand/arguments/argument": argument +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testCommand/environmentVariables": environment_variables +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testCommand/environmentVariables/environment_variable": environment_variable +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable": google_devtools_remoteexecution_v1test_command_environment_variable +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable/name": name +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable/value": value +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testDigest": google_devtools_remoteexecution_v1test_digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testDigest/hash": hash_prop +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testDigest/sizeBytes": size_bytes +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testDirectory": google_devtools_remoteexecution_v1test_directory +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testDirectory/directories": directories +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testDirectory/directories/directory": directory +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testDirectory/files": files +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testDirectory/files/file": file +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testDirectoryNode": google_devtools_remoteexecution_v1test_directory_node +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testDirectoryNode/digest": digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testDirectoryNode/name": name +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata": google_devtools_remoteexecution_v1test_execute_operation_metadata +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata/actionDigest": action_digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata/stage": stage +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata/stderrStreamName": stderr_stream_name +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata/stdoutStreamName": stdout_stream_name +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testExecuteResponse": google_devtools_remoteexecution_v1test_execute_response +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/cachedResult": cached_result +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/result": result +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/serverLogs": server_logs +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/serverLogs/server_log": server_log +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/status": status +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testFileNode": google_devtools_remoteexecution_v1test_file_node +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testFileNode/digest": digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testFileNode/isExecutable": is_executable +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testFileNode/name": name +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testLogFile": google_devtools_remoteexecution_v1test_log_file +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testLogFile/digest": digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testLogFile/humanReadable": human_readable +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testOutputDirectory": google_devtools_remoteexecution_v1test_output_directory +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testOutputDirectory/digest": digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testOutputDirectory/path": path +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testOutputDirectory/treeDigest": tree_digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testOutputFile": google_devtools_remoteexecution_v1test_output_file +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testOutputFile/content": content +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testOutputFile/digest": digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testOutputFile/isExecutable": is_executable +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testOutputFile/path": path +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testRequestMetadata": google_devtools_remoteexecution_v1test_request_metadata +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testRequestMetadata/actionId": action_id +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testRequestMetadata/correlatedInvocationsId": correlated_invocations_id +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testRequestMetadata/toolDetails": tool_details +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testRequestMetadata/toolInvocationId": tool_invocation_id +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testToolDetails": google_devtools_remoteexecution_v1test_tool_details +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testToolDetails/toolName": tool_name +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testToolDetails/toolVersion": tool_version +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testTree": google_devtools_remoteexecution_v1test_tree +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testTree/children": children +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testTree/children/child": child +"/remotebuildexecution:v1/GoogleDevtoolsRemoteexecutionV1testTree/root": root +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2AdminTemp": google_devtools_remoteworkers_v1test2_admin_temp +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2AdminTemp/arg": arg +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2AdminTemp/command": command +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2Blob": google_devtools_remoteworkers_v1test2_blob +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2Blob/contents": contents +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2Blob/digest": digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandOutputs": google_devtools_remoteworkers_v1test2_command_outputs +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandOutputs/exitCode": exit_code +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandOutputs/outputs": outputs +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandOverhead": google_devtools_remoteworkers_v1test2_command_overhead +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandOverhead/duration": duration +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandOverhead/overhead": overhead +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandResult": google_devtools_remoteworkers_v1test2_command_result +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandResult/duration": duration +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandResult/exitCode": exit_code +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandResult/outputs": outputs +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandResult/overhead": overhead +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandResult/statistics": statistics +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandResult/statistics/statistic": statistic +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandResult/statistics/statistic/statistic": statistic +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandResult/status": status +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTask": google_devtools_remoteworkers_v1test2_command_task +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTask/expectedOutputs": expected_outputs +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTask/inputs": inputs +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTask/timeouts": timeouts +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs": google_devtools_remoteworkers_v1test2_command_task_inputs +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/arguments": arguments +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/arguments/argument": argument +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/environmentVariables": environment_variables +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/environmentVariables/environment_variable": environment_variable +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/files": files +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/files/file": file +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/inlineBlobs": inline_blobs +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/inlineBlobs/inline_blob": inline_blob +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable": google_devtools_remoteworkers_v1test2_command_task_inputs_environment_variable +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable/name": name +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable/value": value +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs": google_devtools_remoteworkers_v1test2_command_task_outputs +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/directories": directories +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/directories/directory": directory +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/files": files +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/files/file": file +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/stderrDestination": stderr_destination +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/stdoutDestination": stdout_destination +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts": google_devtools_remoteworkers_v1test2_command_task_timeouts +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts/execution": execution +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts/idle": idle +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts/shutdown": shutdown +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2Digest": google_devtools_remoteworkers_v1test2_digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2Digest/hash": hash_prop +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2Digest/sizeBytes": size_bytes +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2Directory": google_devtools_remoteworkers_v1test2_directory +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2Directory/directories": directories +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2Directory/directories/directory": directory +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2Directory/files": files +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2Directory/files/file": file +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata": google_devtools_remoteworkers_v1test2_directory_metadata +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata/digest": digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata/path": path +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2FileMetadata": google_devtools_remoteworkers_v1test2_file_metadata +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2FileMetadata/contents": contents +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2FileMetadata/digest": digest +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2FileMetadata/isExecutable": is_executable +"/remotebuildexecution:v1/GoogleDevtoolsRemoteworkersV1test2FileMetadata/path": path +"/remotebuildexecution:v1/GoogleLongrunningCancelOperationRequest": google_longrunning_cancel_operation_request +"/remotebuildexecution:v1/GoogleLongrunningListOperationsResponse": google_longrunning_list_operations_response +"/remotebuildexecution:v1/GoogleLongrunningListOperationsResponse/nextPageToken": next_page_token +"/remotebuildexecution:v1/GoogleLongrunningListOperationsResponse/operations": operations +"/remotebuildexecution:v1/GoogleLongrunningListOperationsResponse/operations/operation": operation +"/remotebuildexecution:v1/GoogleLongrunningOperation": google_longrunning_operation +"/remotebuildexecution:v1/GoogleLongrunningOperation/done": done +"/remotebuildexecution:v1/GoogleLongrunningOperation/error": error +"/remotebuildexecution:v1/GoogleLongrunningOperation/metadata": metadata +"/remotebuildexecution:v1/GoogleLongrunningOperation/metadata/metadatum": metadatum +"/remotebuildexecution:v1/GoogleLongrunningOperation/name": name +"/remotebuildexecution:v1/GoogleLongrunningOperation/response": response +"/remotebuildexecution:v1/GoogleLongrunningOperation/response/response": response +"/remotebuildexecution:v1/GoogleProtobufEmpty": google_protobuf_empty +"/remotebuildexecution:v1/GoogleRpcStatus": google_rpc_status +"/remotebuildexecution:v1/GoogleRpcStatus/code": code +"/remotebuildexecution:v1/GoogleRpcStatus/details": details +"/remotebuildexecution:v1/GoogleRpcStatus/details/detail": detail +"/remotebuildexecution:v1/GoogleRpcStatus/details/detail/detail": detail +"/remotebuildexecution:v1/GoogleRpcStatus/message": message +"/remotebuildexecution:v1/GoogleWatcherV1Change": google_watcher_v1_change +"/remotebuildexecution:v1/GoogleWatcherV1Change/continued": continued +"/remotebuildexecution:v1/GoogleWatcherV1Change/data": data +"/remotebuildexecution:v1/GoogleWatcherV1Change/data/datum": datum +"/remotebuildexecution:v1/GoogleWatcherV1Change/element": element +"/remotebuildexecution:v1/GoogleWatcherV1Change/resumeMarker": resume_marker +"/remotebuildexecution:v1/GoogleWatcherV1Change/state": state +"/remotebuildexecution:v1/GoogleWatcherV1ChangeBatch": google_watcher_v1_change_batch +"/remotebuildexecution:v1/GoogleWatcherV1ChangeBatch/changes": changes +"/remotebuildexecution:v1/GoogleWatcherV1ChangeBatch/changes/change": change +"/remotebuildexecution:v1/fields": fields +"/remotebuildexecution:v1/key": key +"/remotebuildexecution:v1/quotaUser": quota_user +"/remotebuildexecution:v1/remotebuildexecution.media.download": download_medium +"/remotebuildexecution:v1/remotebuildexecution.media.download/resourceName": resource_name +"/remotebuildexecution:v1/remotebuildexecution.media.upload": upload_medium +"/remotebuildexecution:v1/remotebuildexecution.media.upload/resourceName": resource_name +"/remotebuildexecution:v1/remotebuildexecution.operations.cancel": cancel_operation +"/remotebuildexecution:v1/remotebuildexecution.operations.cancel/name": name +"/remotebuildexecution:v1/remotebuildexecution.operations.delete": delete_operation +"/remotebuildexecution:v1/remotebuildexecution.operations.delete/name": name +"/remotebuildexecution:v1/remotebuildexecution.operations.list": list_operations +"/remotebuildexecution:v1/remotebuildexecution.operations.list/filter": filter +"/remotebuildexecution:v1/remotebuildexecution.operations.list/name": name +"/remotebuildexecution:v1/remotebuildexecution.operations.list/pageSize": page_size +"/remotebuildexecution:v1/remotebuildexecution.operations.list/pageToken": page_token +"/remotebuildexecution:v1/remotebuildexecution.projects.operations.get": get_project_operation +"/remotebuildexecution:v1/remotebuildexecution.projects.operations.get/name": name +"/remotebuildexecution:v1/remotebuildexecution.watch/resumeMarker": resume_marker +"/remotebuildexecution:v1/remotebuildexecution.watch/target": target +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Action": build_bazel_remote_execution_v2_action +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Action/commandDigest": command_digest +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Action/doNotCache": do_not_cache +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Action/inputRootDigest": input_root_digest +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Action/timeout": timeout +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult": build_bazel_remote_execution_v2_action_result +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/executionMetadata": execution_metadata +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/exitCode": exit_code +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/outputDirectories": output_directories +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/outputDirectories/output_directory": output_directory +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/outputDirectorySymlinks": output_directory_symlinks +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/outputDirectorySymlinks/output_directory_symlink": output_directory_symlink +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/outputFileSymlinks": output_file_symlinks +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/outputFileSymlinks/output_file_symlink": output_file_symlink +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/outputFiles": output_files +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/outputFiles/output_file": output_file +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/stderrDigest": stderr_digest +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/stderrRaw": stderr_raw +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/stdoutDigest": stdout_digest +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ActionResult/stdoutRaw": stdout_raw +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Command": build_bazel_remote_execution_v2_command +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Command/arguments": arguments +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Command/arguments/argument": argument +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Command/environmentVariables": environment_variables +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Command/environmentVariables/environment_variable": environment_variable +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Command/outputDirectories": output_directories +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Command/outputDirectories/output_directory": output_directory +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Command/outputFiles": output_files +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Command/outputFiles/output_file": output_file +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Command/platform": platform +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Command/workingDirectory": working_directory +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2CommandEnvironmentVariable": build_bazel_remote_execution_v2_command_environment_variable +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2CommandEnvironmentVariable/name": name +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2CommandEnvironmentVariable/value": value +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Digest": build_bazel_remote_execution_v2_digest +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Digest/hash": hash_prop +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Digest/sizeBytes": size_bytes +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Directory": build_bazel_remote_execution_v2_directory +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Directory/directories": directories +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Directory/directories/directory": directory +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Directory/files": files +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Directory/files/file": file +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Directory/symlinks": symlinks +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Directory/symlinks/symlink": symlink +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2DirectoryNode": build_bazel_remote_execution_v2_directory_node +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2DirectoryNode/digest": digest +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2DirectoryNode/name": name +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecuteOperationMetadata": build_bazel_remote_execution_v2_execute_operation_metadata +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecuteOperationMetadata/actionDigest": action_digest +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecuteOperationMetadata/stage": stage +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecuteOperationMetadata/stderrStreamName": stderr_stream_name +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecuteOperationMetadata/stdoutStreamName": stdout_stream_name +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecuteResponse": build_bazel_remote_execution_v2_execute_response +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecuteResponse/cachedResult": cached_result +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecuteResponse/result": result +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecuteResponse/serverLogs": server_logs +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecuteResponse/serverLogs/server_log": server_log +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecuteResponse/status": status +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecutedActionMetadata": build_bazel_remote_execution_v2_executed_action_metadata +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecutedActionMetadata/executionCompletedTimestamp": execution_completed_timestamp +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecutedActionMetadata/executionStartTimestamp": execution_start_timestamp +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecutedActionMetadata/inputFetchCompletedTimestamp": input_fetch_completed_timestamp +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecutedActionMetadata/inputFetchStartTimestamp": input_fetch_start_timestamp +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecutedActionMetadata/outputUploadCompletedTimestamp": output_upload_completed_timestamp +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecutedActionMetadata/outputUploadStartTimestamp": output_upload_start_timestamp +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecutedActionMetadata/queuedTimestamp": queued_timestamp +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecutedActionMetadata/worker": worker +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecutedActionMetadata/workerCompletedTimestamp": worker_completed_timestamp +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ExecutedActionMetadata/workerStartTimestamp": worker_start_timestamp +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2FileNode": build_bazel_remote_execution_v2_file_node +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2FileNode/digest": digest +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2FileNode/isExecutable": is_executable +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2FileNode/name": name +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2LogFile": build_bazel_remote_execution_v2_log_file +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2LogFile/digest": digest +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2LogFile/humanReadable": human_readable +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2OutputDirectory": build_bazel_remote_execution_v2_output_directory +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2OutputDirectory/path": path +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2OutputDirectory/treeDigest": tree_digest +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2OutputFile": build_bazel_remote_execution_v2_output_file +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2OutputFile/digest": digest +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2OutputFile/isExecutable": is_executable +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2OutputFile/path": path +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2OutputSymlink": build_bazel_remote_execution_v2_output_symlink +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2OutputSymlink/path": path +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2OutputSymlink/target": target +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Platform": build_bazel_remote_execution_v2_platform +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Platform/properties": properties +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Platform/properties/property": property +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2PlatformProperty": build_bazel_remote_execution_v2_platform_property +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2PlatformProperty/name": name +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2PlatformProperty/value": value +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2RequestMetadata": build_bazel_remote_execution_v2_request_metadata +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2RequestMetadata/actionId": action_id +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2RequestMetadata/correlatedInvocationsId": correlated_invocations_id +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2RequestMetadata/toolDetails": tool_details +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2RequestMetadata/toolInvocationId": tool_invocation_id +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2SymlinkNode": build_bazel_remote_execution_v2_symlink_node +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2SymlinkNode/name": name +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2SymlinkNode/target": target +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ToolDetails": build_bazel_remote_execution_v2_tool_details +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ToolDetails/toolName": tool_name +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2ToolDetails/toolVersion": tool_version +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Tree": build_bazel_remote_execution_v2_tree +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Tree/children": children +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Tree/children/child": child +"/remotebuildexecution:v1alpha/BuildBazelRemoteExecutionV2Tree/root": root +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildbotCommandDurations": google_devtools_remotebuildbot_command_durations +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildbotCommandDurations/dockerPrep": docker_prep +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildbotCommandDurations/download": download +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildbotCommandDurations/execution": execution +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildbotCommandDurations/isoPrepDone": iso_prep_done +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildbotCommandDurations/overall": overall +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildbotCommandDurations/stdout": stdout +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildbotCommandDurations/upload": upload +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildbotCommandEvents": google_devtools_remotebuildbot_command_events +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildbotCommandEvents/dockerCacheHit": docker_cache_hit +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildbotCommandEvents/numErrors": num_errors +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildbotCommandEvents/numWarnings": num_warnings +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest": google_devtools_remotebuildexecution_admin_v1alpha_create_instance_request +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest/instance": instance +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest/instanceId": instance_id +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest/parent": parent +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest": google_devtools_remotebuildexecution_admin_v1alpha_create_worker_pool_request +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest/parent": parent +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest/poolId": pool_id +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest/workerPool": worker_pool +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest": google_devtools_remotebuildexecution_admin_v1alpha_delete_instance_request +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest/name": name +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest": google_devtools_remotebuildexecution_admin_v1alpha_delete_worker_pool_request +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest/name": name +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest": google_devtools_remotebuildexecution_admin_v1alpha_get_instance_request +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest/name": name +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest": google_devtools_remotebuildexecution_admin_v1alpha_get_worker_pool_request +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest/name": name +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance": google_devtools_remotebuildexecution_admin_v1alpha_instance +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance/location": location +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance/name": name +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance/state": state +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest": google_devtools_remotebuildexecution_admin_v1alpha_list_instances_request +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest/parent": parent +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse": google_devtools_remotebuildexecution_admin_v1alpha_list_instances_response +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse/instances": instances +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse/instances/instance": instance +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest": google_devtools_remotebuildexecution_admin_v1alpha_list_worker_pools_request +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest/parent": parent +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse": google_devtools_remotebuildexecution_admin_v1alpha_list_worker_pools_response +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse/workerPools": worker_pools +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse/workerPools/worker_pool": worker_pool +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest": google_devtools_remotebuildexecution_admin_v1alpha_update_worker_pool_request +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest/updateMask": update_mask +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest/workerPool": worker_pool +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig": google_devtools_remotebuildexecution_admin_v1alpha_worker_config +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/diskSizeGb": disk_size_gb +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/diskType": disk_type +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/machineType": machine_type +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/minCpuPlatform": min_cpu_platform +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/reserved": reserved +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool": google_devtools_remotebuildexecution_admin_v1alpha_worker_pool +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool/name": name +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool/state": state +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool/workerConfig": worker_config +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool/workerCount": worker_count +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testActionResult": google_devtools_remoteexecution_v1test_action_result +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testActionResult/exitCode": exit_code +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testActionResult/outputDirectories": output_directories +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testActionResult/outputDirectories/output_directory": output_directory +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testActionResult/outputFiles": output_files +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testActionResult/outputFiles/output_file": output_file +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testActionResult/stderrDigest": stderr_digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testActionResult/stderrRaw": stderr_raw +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testActionResult/stdoutDigest": stdout_digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testActionResult/stdoutRaw": stdout_raw +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testCommand": google_devtools_remoteexecution_v1test_command +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testCommand/arguments": arguments +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testCommand/arguments/argument": argument +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testCommand/environmentVariables": environment_variables +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testCommand/environmentVariables/environment_variable": environment_variable +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable": google_devtools_remoteexecution_v1test_command_environment_variable +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable/name": name +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable/value": value +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testDigest": google_devtools_remoteexecution_v1test_digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testDigest/hash": hash_prop +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testDigest/sizeBytes": size_bytes +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testDirectory": google_devtools_remoteexecution_v1test_directory +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testDirectory/directories": directories +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testDirectory/directories/directory": directory +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testDirectory/files": files +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testDirectory/files/file": file +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testDirectoryNode": google_devtools_remoteexecution_v1test_directory_node +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testDirectoryNode/digest": digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testDirectoryNode/name": name +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata": google_devtools_remoteexecution_v1test_execute_operation_metadata +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata/actionDigest": action_digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata/stage": stage +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata/stderrStreamName": stderr_stream_name +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata/stdoutStreamName": stdout_stream_name +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testExecuteResponse": google_devtools_remoteexecution_v1test_execute_response +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/cachedResult": cached_result +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/result": result +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/serverLogs": server_logs +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/serverLogs/server_log": server_log +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/status": status +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testFileNode": google_devtools_remoteexecution_v1test_file_node +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testFileNode/digest": digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testFileNode/isExecutable": is_executable +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testFileNode/name": name +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testLogFile": google_devtools_remoteexecution_v1test_log_file +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testLogFile/digest": digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testLogFile/humanReadable": human_readable +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testOutputDirectory": google_devtools_remoteexecution_v1test_output_directory +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testOutputDirectory/digest": digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testOutputDirectory/path": path +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testOutputDirectory/treeDigest": tree_digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testOutputFile": google_devtools_remoteexecution_v1test_output_file +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testOutputFile/content": content +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testOutputFile/digest": digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testOutputFile/isExecutable": is_executable +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testOutputFile/path": path +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testRequestMetadata": google_devtools_remoteexecution_v1test_request_metadata +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testRequestMetadata/actionId": action_id +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testRequestMetadata/correlatedInvocationsId": correlated_invocations_id +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testRequestMetadata/toolDetails": tool_details +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testRequestMetadata/toolInvocationId": tool_invocation_id +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testToolDetails": google_devtools_remoteexecution_v1test_tool_details +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testToolDetails/toolName": tool_name +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testToolDetails/toolVersion": tool_version +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testTree": google_devtools_remoteexecution_v1test_tree +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testTree/children": children +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testTree/children/child": child +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteexecutionV1testTree/root": root +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2AdminTemp": google_devtools_remoteworkers_v1test2_admin_temp +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2AdminTemp/arg": arg +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2AdminTemp/command": command +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2Blob": google_devtools_remoteworkers_v1test2_blob +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2Blob/contents": contents +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2Blob/digest": digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandOutputs": google_devtools_remoteworkers_v1test2_command_outputs +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandOutputs/exitCode": exit_code +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandOutputs/outputs": outputs +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandOverhead": google_devtools_remoteworkers_v1test2_command_overhead +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandOverhead/duration": duration +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandOverhead/overhead": overhead +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandResult": google_devtools_remoteworkers_v1test2_command_result +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandResult/duration": duration +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandResult/exitCode": exit_code +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandResult/outputs": outputs +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandResult/overhead": overhead +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandResult/statistics": statistics +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandResult/statistics/statistic": statistic +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandResult/statistics/statistic/statistic": statistic +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandResult/status": status +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTask": google_devtools_remoteworkers_v1test2_command_task +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTask/expectedOutputs": expected_outputs +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTask/inputs": inputs +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTask/timeouts": timeouts +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs": google_devtools_remoteworkers_v1test2_command_task_inputs +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/arguments": arguments +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/arguments/argument": argument +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/environmentVariables": environment_variables +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/environmentVariables/environment_variable": environment_variable +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/files": files +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/files/file": file +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/inlineBlobs": inline_blobs +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/inlineBlobs/inline_blob": inline_blob +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable": google_devtools_remoteworkers_v1test2_command_task_inputs_environment_variable +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable/name": name +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable/value": value +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs": google_devtools_remoteworkers_v1test2_command_task_outputs +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/directories": directories +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/directories/directory": directory +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/files": files +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/files/file": file +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/stderrDestination": stderr_destination +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/stdoutDestination": stdout_destination +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts": google_devtools_remoteworkers_v1test2_command_task_timeouts +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts/execution": execution +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts/idle": idle +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts/shutdown": shutdown +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2Digest": google_devtools_remoteworkers_v1test2_digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2Digest/hash": hash_prop +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2Digest/sizeBytes": size_bytes +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2Directory": google_devtools_remoteworkers_v1test2_directory +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2Directory/directories": directories +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2Directory/directories/directory": directory +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2Directory/files": files +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2Directory/files/file": file +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata": google_devtools_remoteworkers_v1test2_directory_metadata +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata/digest": digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata/path": path +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2FileMetadata": google_devtools_remoteworkers_v1test2_file_metadata +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2FileMetadata/contents": contents +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2FileMetadata/digest": digest +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2FileMetadata/isExecutable": is_executable +"/remotebuildexecution:v1alpha/GoogleDevtoolsRemoteworkersV1test2FileMetadata/path": path +"/remotebuildexecution:v1alpha/GoogleLongrunningOperation": google_longrunning_operation +"/remotebuildexecution:v1alpha/GoogleLongrunningOperation/done": done +"/remotebuildexecution:v1alpha/GoogleLongrunningOperation/error": error +"/remotebuildexecution:v1alpha/GoogleLongrunningOperation/metadata": metadata +"/remotebuildexecution:v1alpha/GoogleLongrunningOperation/metadata/metadatum": metadatum +"/remotebuildexecution:v1alpha/GoogleLongrunningOperation/name": name +"/remotebuildexecution:v1alpha/GoogleLongrunningOperation/response": response +"/remotebuildexecution:v1alpha/GoogleLongrunningOperation/response/response": response +"/remotebuildexecution:v1alpha/GoogleRpcStatus": google_rpc_status +"/remotebuildexecution:v1alpha/GoogleRpcStatus/code": code +"/remotebuildexecution:v1alpha/GoogleRpcStatus/details": details +"/remotebuildexecution:v1alpha/GoogleRpcStatus/details/detail": detail +"/remotebuildexecution:v1alpha/GoogleRpcStatus/details/detail/detail": detail +"/remotebuildexecution:v1alpha/GoogleRpcStatus/message": message +"/remotebuildexecution:v1alpha/fields": fields +"/remotebuildexecution:v1alpha/key": key +"/remotebuildexecution:v1alpha/quotaUser": quota_user +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.create": create_project_instance +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.create/parent": parent +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.delete": delete_project_instance +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.delete/name": name +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.get": get_project_instance +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.get/name": name +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.list": list_project_instances +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.list/parent": parent +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.workerpools.create": create_project_instance_workerpool +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.workerpools.create/parent": parent +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.workerpools.delete": delete_project_instance_workerpool +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.workerpools.delete/name": name +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.workerpools.get": get_project_instance_workerpool +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.workerpools.get/name": name +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.workerpools.list": list_project_instance_workerpools +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.workerpools.list/parent": parent +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.workerpools.patch": patch_project_instance_workerpool +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.instances.workerpools.patch/name": name +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.operations.get": get_project_operation +"/remotebuildexecution:v1alpha/remotebuildexecution.projects.operations.get/name": name +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Action": build_bazel_remote_execution_v2_action +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Action/commandDigest": command_digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Action/doNotCache": do_not_cache +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Action/inputRootDigest": input_root_digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Action/timeout": timeout +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities": build_bazel_remote_execution_v2_action_cache_update_capabilities +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities/updateEnabled": update_enabled +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult": build_bazel_remote_execution_v2_action_result +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/executionMetadata": execution_metadata +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/exitCode": exit_code +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/outputDirectories": output_directories +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/outputDirectories/output_directory": output_directory +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/outputDirectorySymlinks": output_directory_symlinks +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/outputDirectorySymlinks/output_directory_symlink": output_directory_symlink +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/outputFileSymlinks": output_file_symlinks +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/outputFileSymlinks/output_file_symlink": output_file_symlink +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/outputFiles": output_files +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/outputFiles/output_file": output_file +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/stderrDigest": stderr_digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/stderrRaw": stderr_raw +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/stdoutDigest": stdout_digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ActionResult/stdoutRaw": stdout_raw +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchReadBlobsRequest": build_bazel_remote_execution_v2_batch_read_blobs_request +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchReadBlobsRequest/digests": digests +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchReadBlobsRequest/digests/digest": digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchReadBlobsResponse": build_bazel_remote_execution_v2_batch_read_blobs_response +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchReadBlobsResponse/responses": responses +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchReadBlobsResponse/responses/response": response +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse": build_bazel_remote_execution_v2_batch_read_blobs_response_response +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse/data": data +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse/digest": digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse/status": status +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest": build_bazel_remote_execution_v2_batch_update_blobs_request +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest/requests": requests +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest/requests/request": request +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest": build_bazel_remote_execution_v2_batch_update_blobs_request_request +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest/data": data +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest/digest": digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse": build_bazel_remote_execution_v2_batch_update_blobs_response +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse/responses": responses +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse/responses/response": response +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse": build_bazel_remote_execution_v2_batch_update_blobs_response_response +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse/digest": digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse/status": status +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2CacheCapabilities": build_bazel_remote_execution_v2_cache_capabilities +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2CacheCapabilities/actionCacheUpdateCapabilities": action_cache_update_capabilities +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2CacheCapabilities/cachePriorityCapabilities": cache_priority_capabilities +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2CacheCapabilities/digestFunction": digest_function +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2CacheCapabilities/digestFunction/digest_function": digest_function +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2CacheCapabilities/maxBatchTotalSizeBytes": max_batch_total_size_bytes +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2CacheCapabilities/symlinkAbsolutePathStrategy": symlink_absolute_path_strategy +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Command": build_bazel_remote_execution_v2_command +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Command/arguments": arguments +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Command/arguments/argument": argument +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Command/environmentVariables": environment_variables +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Command/environmentVariables/environment_variable": environment_variable +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Command/outputDirectories": output_directories +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Command/outputDirectories/output_directory": output_directory +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Command/outputFiles": output_files +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Command/outputFiles/output_file": output_file +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Command/platform": platform +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Command/workingDirectory": working_directory +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2CommandEnvironmentVariable": build_bazel_remote_execution_v2_command_environment_variable +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2CommandEnvironmentVariable/name": name +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2CommandEnvironmentVariable/value": value +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Digest": build_bazel_remote_execution_v2_digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Digest/hash": hash_prop +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Digest/sizeBytes": size_bytes +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Directory": build_bazel_remote_execution_v2_directory +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Directory/directories": directories +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Directory/directories/directory": directory +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Directory/files": files +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Directory/files/file": file +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Directory/symlinks": symlinks +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Directory/symlinks/symlink": symlink +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2DirectoryNode": build_bazel_remote_execution_v2_directory_node +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2DirectoryNode/digest": digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2DirectoryNode/name": name +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteOperationMetadata": build_bazel_remote_execution_v2_execute_operation_metadata +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteOperationMetadata/actionDigest": action_digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteOperationMetadata/stage": stage +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteOperationMetadata/stderrStreamName": stderr_stream_name +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteOperationMetadata/stdoutStreamName": stdout_stream_name +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteRequest": build_bazel_remote_execution_v2_execute_request +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteRequest/actionDigest": action_digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteRequest/executionPolicy": execution_policy +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteRequest/resultsCachePolicy": results_cache_policy +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteRequest/skipCacheLookup": skip_cache_lookup +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteResponse": build_bazel_remote_execution_v2_execute_response +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteResponse/cachedResult": cached_result +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteResponse/result": result +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteResponse/serverLogs": server_logs +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteResponse/serverLogs/server_log": server_log +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecuteResponse/status": status +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutedActionMetadata": build_bazel_remote_execution_v2_executed_action_metadata +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutedActionMetadata/executionCompletedTimestamp": execution_completed_timestamp +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutedActionMetadata/executionStartTimestamp": execution_start_timestamp +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutedActionMetadata/inputFetchCompletedTimestamp": input_fetch_completed_timestamp +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutedActionMetadata/inputFetchStartTimestamp": input_fetch_start_timestamp +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutedActionMetadata/outputUploadCompletedTimestamp": output_upload_completed_timestamp +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutedActionMetadata/outputUploadStartTimestamp": output_upload_start_timestamp +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutedActionMetadata/queuedTimestamp": queued_timestamp +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutedActionMetadata/worker": worker +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutedActionMetadata/workerCompletedTimestamp": worker_completed_timestamp +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutedActionMetadata/workerStartTimestamp": worker_start_timestamp +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutionCapabilities": build_bazel_remote_execution_v2_execution_capabilities +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutionCapabilities/digestFunction": digest_function +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutionCapabilities/execEnabled": exec_enabled +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutionCapabilities/executionPriorityCapabilities": execution_priority_capabilities +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutionPolicy": build_bazel_remote_execution_v2_execution_policy +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ExecutionPolicy/priority": priority +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2FileNode": build_bazel_remote_execution_v2_file_node +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2FileNode/digest": digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2FileNode/isExecutable": is_executable +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2FileNode/name": name +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2FindMissingBlobsRequest": build_bazel_remote_execution_v2_find_missing_blobs_request +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2FindMissingBlobsRequest/blobDigests": blob_digests +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2FindMissingBlobsRequest/blobDigests/blob_digest": blob_digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2FindMissingBlobsResponse": build_bazel_remote_execution_v2_find_missing_blobs_response +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2FindMissingBlobsResponse/missingBlobDigests": missing_blob_digests +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2FindMissingBlobsResponse/missingBlobDigests/missing_blob_digest": missing_blob_digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2GetTreeResponse": build_bazel_remote_execution_v2_get_tree_response +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2GetTreeResponse/directories": directories +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2GetTreeResponse/directories/directory": directory +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2GetTreeResponse/nextPageToken": next_page_token +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2LogFile": build_bazel_remote_execution_v2_log_file +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2LogFile/digest": digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2LogFile/humanReadable": human_readable +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2OutputDirectory": build_bazel_remote_execution_v2_output_directory +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2OutputDirectory/path": path +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2OutputDirectory/treeDigest": tree_digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2OutputFile": build_bazel_remote_execution_v2_output_file +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2OutputFile/digest": digest +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2OutputFile/isExecutable": is_executable +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2OutputFile/path": path +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2OutputSymlink": build_bazel_remote_execution_v2_output_symlink +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2OutputSymlink/path": path +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2OutputSymlink/target": target +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Platform": build_bazel_remote_execution_v2_platform +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Platform/properties": properties +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Platform/properties/property": property +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2PlatformProperty": build_bazel_remote_execution_v2_platform_property +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2PlatformProperty/name": name +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2PlatformProperty/value": value +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2PriorityCapabilities": build_bazel_remote_execution_v2_priority_capabilities +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2PriorityCapabilities/priorities": priorities +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2PriorityCapabilities/priorities/priority": priority +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange": build_bazel_remote_execution_v2_priority_capabilities_priority_range +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange/maxPriority": max_priority +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange/minPriority": min_priority +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2RequestMetadata": build_bazel_remote_execution_v2_request_metadata +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2RequestMetadata/actionId": action_id +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2RequestMetadata/correlatedInvocationsId": correlated_invocations_id +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2RequestMetadata/toolDetails": tool_details +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2RequestMetadata/toolInvocationId": tool_invocation_id +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ResultsCachePolicy": build_bazel_remote_execution_v2_results_cache_policy +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ResultsCachePolicy/priority": priority +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ServerCapabilities": build_bazel_remote_execution_v2_server_capabilities +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ServerCapabilities/cacheCapabilities": cache_capabilities +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ServerCapabilities/deprecatedApiVersion": deprecated_api_version +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ServerCapabilities/executionCapabilities": execution_capabilities +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ServerCapabilities/highApiVersion": high_api_version +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ServerCapabilities/lowApiVersion": low_api_version +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2SymlinkNode": build_bazel_remote_execution_v2_symlink_node +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2SymlinkNode/name": name +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2SymlinkNode/target": target +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ToolDetails": build_bazel_remote_execution_v2_tool_details +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ToolDetails/toolName": tool_name +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2ToolDetails/toolVersion": tool_version +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Tree": build_bazel_remote_execution_v2_tree +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Tree/children": children +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Tree/children/child": child +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2Tree/root": root +"/remotebuildexecution:v2/BuildBazelRemoteExecutionV2WaitExecutionRequest": build_bazel_remote_execution_v2_wait_execution_request +"/remotebuildexecution:v2/BuildBazelSemverSemVer": build_bazel_semver_sem_ver +"/remotebuildexecution:v2/BuildBazelSemverSemVer/major": major +"/remotebuildexecution:v2/BuildBazelSemverSemVer/minor": minor +"/remotebuildexecution:v2/BuildBazelSemverSemVer/patch": patch +"/remotebuildexecution:v2/BuildBazelSemverSemVer/prerelease": prerelease +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildbotCommandDurations": google_devtools_remotebuildbot_command_durations +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildbotCommandDurations/dockerPrep": docker_prep +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildbotCommandDurations/download": download +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildbotCommandDurations/execution": execution +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildbotCommandDurations/isoPrepDone": iso_prep_done +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildbotCommandDurations/overall": overall +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildbotCommandDurations/stdout": stdout +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildbotCommandDurations/upload": upload +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildbotCommandEvents": google_devtools_remotebuildbot_command_events +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildbotCommandEvents/dockerCacheHit": docker_cache_hit +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildbotCommandEvents/numErrors": num_errors +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildbotCommandEvents/numWarnings": num_warnings +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest": google_devtools_remotebuildexecution_admin_v1alpha_create_instance_request +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest/instance": instance +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest/instanceId": instance_id +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest/parent": parent +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest": google_devtools_remotebuildexecution_admin_v1alpha_create_worker_pool_request +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest/parent": parent +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest/poolId": pool_id +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest/workerPool": worker_pool +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest": google_devtools_remotebuildexecution_admin_v1alpha_delete_instance_request +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest/name": name +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest": google_devtools_remotebuildexecution_admin_v1alpha_delete_worker_pool_request +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest/name": name +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest": google_devtools_remotebuildexecution_admin_v1alpha_get_instance_request +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest/name": name +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest": google_devtools_remotebuildexecution_admin_v1alpha_get_worker_pool_request +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest/name": name +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance": google_devtools_remotebuildexecution_admin_v1alpha_instance +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance/location": location +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance/name": name +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance/state": state +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest": google_devtools_remotebuildexecution_admin_v1alpha_list_instances_request +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest/parent": parent +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse": google_devtools_remotebuildexecution_admin_v1alpha_list_instances_response +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse/instances": instances +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse/instances/instance": instance +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest": google_devtools_remotebuildexecution_admin_v1alpha_list_worker_pools_request +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest/parent": parent +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse": google_devtools_remotebuildexecution_admin_v1alpha_list_worker_pools_response +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse/workerPools": worker_pools +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse/workerPools/worker_pool": worker_pool +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest": google_devtools_remotebuildexecution_admin_v1alpha_update_worker_pool_request +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest/updateMask": update_mask +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest/workerPool": worker_pool +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig": google_devtools_remotebuildexecution_admin_v1alpha_worker_config +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/diskSizeGb": disk_size_gb +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/diskType": disk_type +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/machineType": machine_type +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/minCpuPlatform": min_cpu_platform +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig/reserved": reserved +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool": google_devtools_remotebuildexecution_admin_v1alpha_worker_pool +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool/name": name +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool/state": state +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool/workerConfig": worker_config +"/remotebuildexecution:v2/GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool/workerCount": worker_count +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testActionResult": google_devtools_remoteexecution_v1test_action_result +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testActionResult/exitCode": exit_code +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testActionResult/outputDirectories": output_directories +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testActionResult/outputDirectories/output_directory": output_directory +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testActionResult/outputFiles": output_files +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testActionResult/outputFiles/output_file": output_file +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testActionResult/stderrDigest": stderr_digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testActionResult/stderrRaw": stderr_raw +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testActionResult/stdoutDigest": stdout_digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testActionResult/stdoutRaw": stdout_raw +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testCommand": google_devtools_remoteexecution_v1test_command +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testCommand/arguments": arguments +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testCommand/arguments/argument": argument +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testCommand/environmentVariables": environment_variables +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testCommand/environmentVariables/environment_variable": environment_variable +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable": google_devtools_remoteexecution_v1test_command_environment_variable +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable/name": name +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable/value": value +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testDigest": google_devtools_remoteexecution_v1test_digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testDigest/hash": hash_prop +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testDigest/sizeBytes": size_bytes +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testDirectory": google_devtools_remoteexecution_v1test_directory +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testDirectory/directories": directories +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testDirectory/directories/directory": directory +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testDirectory/files": files +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testDirectory/files/file": file +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testDirectoryNode": google_devtools_remoteexecution_v1test_directory_node +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testDirectoryNode/digest": digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testDirectoryNode/name": name +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata": google_devtools_remoteexecution_v1test_execute_operation_metadata +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata/actionDigest": action_digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata/stage": stage +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata/stderrStreamName": stderr_stream_name +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata/stdoutStreamName": stdout_stream_name +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testExecuteResponse": google_devtools_remoteexecution_v1test_execute_response +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/cachedResult": cached_result +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/result": result +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/serverLogs": server_logs +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/serverLogs/server_log": server_log +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testExecuteResponse/status": status +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testFileNode": google_devtools_remoteexecution_v1test_file_node +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testFileNode/digest": digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testFileNode/isExecutable": is_executable +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testFileNode/name": name +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testLogFile": google_devtools_remoteexecution_v1test_log_file +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testLogFile/digest": digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testLogFile/humanReadable": human_readable +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testOutputDirectory": google_devtools_remoteexecution_v1test_output_directory +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testOutputDirectory/digest": digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testOutputDirectory/path": path +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testOutputDirectory/treeDigest": tree_digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testOutputFile": google_devtools_remoteexecution_v1test_output_file +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testOutputFile/content": content +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testOutputFile/digest": digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testOutputFile/isExecutable": is_executable +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testOutputFile/path": path +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testRequestMetadata": google_devtools_remoteexecution_v1test_request_metadata +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testRequestMetadata/actionId": action_id +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testRequestMetadata/correlatedInvocationsId": correlated_invocations_id +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testRequestMetadata/toolDetails": tool_details +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testRequestMetadata/toolInvocationId": tool_invocation_id +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testToolDetails": google_devtools_remoteexecution_v1test_tool_details +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testToolDetails/toolName": tool_name +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testToolDetails/toolVersion": tool_version +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testTree": google_devtools_remoteexecution_v1test_tree +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testTree/children": children +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testTree/children/child": child +"/remotebuildexecution:v2/GoogleDevtoolsRemoteexecutionV1testTree/root": root +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2AdminTemp": google_devtools_remoteworkers_v1test2_admin_temp +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2AdminTemp/arg": arg +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2AdminTemp/command": command +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2Blob": google_devtools_remoteworkers_v1test2_blob +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2Blob/contents": contents +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2Blob/digest": digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandOutputs": google_devtools_remoteworkers_v1test2_command_outputs +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandOutputs/exitCode": exit_code +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandOutputs/outputs": outputs +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandOverhead": google_devtools_remoteworkers_v1test2_command_overhead +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandOverhead/duration": duration +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandOverhead/overhead": overhead +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandResult": google_devtools_remoteworkers_v1test2_command_result +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandResult/duration": duration +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandResult/exitCode": exit_code +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandResult/outputs": outputs +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandResult/overhead": overhead +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandResult/statistics": statistics +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandResult/statistics/statistic": statistic +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandResult/statistics/statistic/statistic": statistic +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandResult/status": status +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTask": google_devtools_remoteworkers_v1test2_command_task +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTask/expectedOutputs": expected_outputs +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTask/inputs": inputs +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTask/timeouts": timeouts +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs": google_devtools_remoteworkers_v1test2_command_task_inputs +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/arguments": arguments +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/arguments/argument": argument +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/environmentVariables": environment_variables +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/environmentVariables/environment_variable": environment_variable +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/files": files +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/files/file": file +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/inlineBlobs": inline_blobs +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs/inlineBlobs/inline_blob": inline_blob +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable": google_devtools_remoteworkers_v1test2_command_task_inputs_environment_variable +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable/name": name +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable/value": value +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs": google_devtools_remoteworkers_v1test2_command_task_outputs +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/directories": directories +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/directories/directory": directory +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/files": files +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/files/file": file +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/stderrDestination": stderr_destination +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs/stdoutDestination": stdout_destination +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts": google_devtools_remoteworkers_v1test2_command_task_timeouts +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts/execution": execution +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts/idle": idle +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts/shutdown": shutdown +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2Digest": google_devtools_remoteworkers_v1test2_digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2Digest/hash": hash_prop +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2Digest/sizeBytes": size_bytes +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2Directory": google_devtools_remoteworkers_v1test2_directory +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2Directory/directories": directories +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2Directory/directories/directory": directory +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2Directory/files": files +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2Directory/files/file": file +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata": google_devtools_remoteworkers_v1test2_directory_metadata +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata/digest": digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata/path": path +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2FileMetadata": google_devtools_remoteworkers_v1test2_file_metadata +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2FileMetadata/contents": contents +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2FileMetadata/digest": digest +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2FileMetadata/isExecutable": is_executable +"/remotebuildexecution:v2/GoogleDevtoolsRemoteworkersV1test2FileMetadata/path": path +"/remotebuildexecution:v2/GoogleLongrunningOperation": google_longrunning_operation +"/remotebuildexecution:v2/GoogleLongrunningOperation/done": done +"/remotebuildexecution:v2/GoogleLongrunningOperation/error": error +"/remotebuildexecution:v2/GoogleLongrunningOperation/metadata": metadata +"/remotebuildexecution:v2/GoogleLongrunningOperation/metadata/metadatum": metadatum +"/remotebuildexecution:v2/GoogleLongrunningOperation/name": name +"/remotebuildexecution:v2/GoogleLongrunningOperation/response": response +"/remotebuildexecution:v2/GoogleLongrunningOperation/response/response": response +"/remotebuildexecution:v2/GoogleRpcStatus": google_rpc_status +"/remotebuildexecution:v2/GoogleRpcStatus/code": code +"/remotebuildexecution:v2/GoogleRpcStatus/details": details +"/remotebuildexecution:v2/GoogleRpcStatus/details/detail": detail +"/remotebuildexecution:v2/GoogleRpcStatus/details/detail/detail": detail +"/remotebuildexecution:v2/GoogleRpcStatus/message": message +"/remotebuildexecution:v2/fields": fields +"/remotebuildexecution:v2/key": key +"/remotebuildexecution:v2/quotaUser": quota_user +"/remotebuildexecution:v2/remotebuildexecution.actionResults.get": get_action_result +"/remotebuildexecution:v2/remotebuildexecution.actionResults.get/hash": hash_ +"/remotebuildexecution:v2/remotebuildexecution.actionResults.get/instanceName": instance_name +"/remotebuildexecution:v2/remotebuildexecution.actionResults.get/sizeBytes": size_bytes +"/remotebuildexecution:v2/remotebuildexecution.actionResults.update": update_action_result +"/remotebuildexecution:v2/remotebuildexecution.actionResults.update/hash": hash_ +"/remotebuildexecution:v2/remotebuildexecution.actionResults.update/instanceName": instance_name +"/remotebuildexecution:v2/remotebuildexecution.actionResults.update/resultsCachePolicy.priority": results_cache_policy_priority +"/remotebuildexecution:v2/remotebuildexecution.actionResults.update/sizeBytes": size_bytes +"/remotebuildexecution:v2/remotebuildexecution.actions.execute": execute_action +"/remotebuildexecution:v2/remotebuildexecution.actions.execute/instanceName": instance_name +"/remotebuildexecution:v2/remotebuildexecution.blobs.batchRead": batch_blob_read +"/remotebuildexecution:v2/remotebuildexecution.blobs.batchRead/instanceName": instance_name +"/remotebuildexecution:v2/remotebuildexecution.blobs.batchUpdate": batch_blob_update +"/remotebuildexecution:v2/remotebuildexecution.blobs.batchUpdate/instanceName": instance_name +"/remotebuildexecution:v2/remotebuildexecution.blobs.findMissing": find_blob_missing +"/remotebuildexecution:v2/remotebuildexecution.blobs.findMissing/instanceName": instance_name +"/remotebuildexecution:v2/remotebuildexecution.blobs.getTree": get_blob_tree +"/remotebuildexecution:v2/remotebuildexecution.blobs.getTree/hash": hash_ +"/remotebuildexecution:v2/remotebuildexecution.blobs.getTree/instanceName": instance_name +"/remotebuildexecution:v2/remotebuildexecution.blobs.getTree/pageSize": page_size +"/remotebuildexecution:v2/remotebuildexecution.blobs.getTree/pageToken": page_token +"/remotebuildexecution:v2/remotebuildexecution.blobs.getTree/sizeBytes": size_bytes +"/remotebuildexecution:v2/remotebuildexecution.getCapabilities/instanceName": instance_name +"/remotebuildexecution:v2/remotebuildexecution.operations.waitExecution": wait_operation_execution +"/remotebuildexecution:v2/remotebuildexecution.operations.waitExecution/name": name "/replicapool:v1beta1/AccessConfig": access_config "/replicapool:v1beta1/AccessConfig/name": name "/replicapool:v1beta1/AccessConfig/natIp": nat_ip @@ -88507,6 +90444,7 @@ "/speech:v1/RecognitionAudio/uri": uri "/speech:v1/RecognitionConfig": recognition_config "/speech:v1/RecognitionConfig/enableAutomaticPunctuation": enable_automatic_punctuation +"/speech:v1/RecognitionConfig/enableSeparateRecognitionPerChannel": enable_separate_recognition_per_channel "/speech:v1/RecognitionConfig/enableWordConfidence": enable_word_confidence "/speech:v1/RecognitionConfig/enableWordTimeOffsets": enable_word_time_offsets "/speech:v1/RecognitionConfig/encoding": encoding @@ -88562,6 +90500,15 @@ "/speech:v1/speech.operations.list/name": name "/speech:v1/speech.operations.list/pageSize": page_size "/speech:v1/speech.operations.list/pageToken": page_token +"/speech:v1/speech.projects.locations.operations.get": get_project_location_operation +"/speech:v1/speech.projects.locations.operations.get/name": name +"/speech:v1/speech.projects.locations.operations.list": list_project_location_operations +"/speech:v1/speech.projects.locations.operations.list/filter": filter +"/speech:v1/speech.projects.locations.operations.list/name": name +"/speech:v1/speech.projects.locations.operations.list/pageSize": page_size +"/speech:v1/speech.projects.locations.operations.list/pageToken": page_token +"/speech:v1/speech.projects.operations.manualRecognitionTasks.get": get_project_operation_manual_recognition_task +"/speech:v1/speech.projects.operations.manualRecognitionTasks.get/name": name "/speech:v1/speech.speech.longrunningrecognize": longrunningrecognize_speech "/speech:v1/speech.speech.recognize": recognize_speech "/speech:v1beta1/AsyncRecognizeRequest": async_recognize_request diff --git a/generated/google/apis/containeranalysis_v1alpha1.rb b/generated/google/apis/containeranalysis_v1alpha1.rb new file mode 100644 index 000000000..d1fb06ae0 --- /dev/null +++ b/generated/google/apis/containeranalysis_v1alpha1.rb @@ -0,0 +1,35 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/containeranalysis_v1alpha1/service.rb' +require 'google/apis/containeranalysis_v1alpha1/classes.rb' +require 'google/apis/containeranalysis_v1alpha1/representations.rb' + +module Google + module Apis + # Container Analysis API + # + # An implementation of the Grafeas API, which stores, and enables querying and + # retrieval of critical metadata about all of your software artifacts. + # + # @see https://cloud.google.com/container-analysis/api/reference/rest/ + module ContaineranalysisV1alpha1 + VERSION = 'V1alpha1' + REVISION = '20181207' + + # View and manage your data across Google Cloud Platform services + AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' + end + end +end diff --git a/generated/google/apis/containeranalysis_v1alpha1/classes.rb b/generated/google/apis/containeranalysis_v1alpha1/classes.rb new file mode 100644 index 000000000..79107de43 --- /dev/null +++ b/generated/google/apis/containeranalysis_v1alpha1/classes.rb @@ -0,0 +1,2780 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module ContaineranalysisV1alpha1 + + # Artifact describes a build product. + class Artifact + include Google::Apis::Core::Hashable + + # Hash or checksum value of a binary, or Docker Registry 2.0 digest of a + # container. + # Corresponds to the JSON property `checksum` + # @return [String] + attr_accessor :checksum + + # Artifact ID, if any; for container images, this will be a URL by digest + # like gcr.io/projectID/imagename@sha256:123456 + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # Name of the artifact. This may be the path to a binary or jar file, or in + # the case of a container build, the name used to push the container image to + # Google Container Registry, as presented to `docker push`. + # This field is deprecated in favor of the plural `names` field; it continues + # to exist here to allow existing BuildProvenance serialized to json in + # google.devtools.containeranalysis.v1alpha1.BuildDetails.provenance_bytes to + # deserialize back into proto. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Related artifact names. This may be the path to a binary or jar file, or in + # the case of a container build, the name used to push the container image to + # Google Container Registry, as presented to `docker push`. Note that a + # single Artifact ID can have multiple names, for example if two tags are + # applied to one image. + # Corresponds to the JSON property `names` + # @return [Array] + attr_accessor :names + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @checksum = args[:checksum] if args.key?(:checksum) + @id = args[:id] if args.key?(:id) + @name = args[:name] if args.key?(:name) + @names = args[:names] if args.key?(:names) + end + end + + # Occurrence that represents a single "attestation". The authenticity of an + # Attestation can be verified using the attached signature. If the verifier + # trusts the public key of the signer, then verifying the signature is + # sufficient to establish trust. In this circumstance, the + # AttestationAuthority to which this Attestation is attached is primarily + # useful for look-up (how to find this Attestation if you already know the + # Authority and artifact to be verified) and intent (which authority was this + # attestation intended to sign for). + class Attestation + include Google::Apis::Core::Hashable + + # An attestation wrapper with a PGP-compatible signature. + # This message only supports `ATTACHED` signatures, where the payload that is + # signed is included alongside the signature itself in the same file. + # Corresponds to the JSON property `pgpSignedAttestation` + # @return [Google::Apis::ContaineranalysisV1alpha1::PgpSignedAttestation] + attr_accessor :pgp_signed_attestation + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @pgp_signed_attestation = args[:pgp_signed_attestation] if args.key?(:pgp_signed_attestation) + end + end + + # Note kind that represents a logical attestation "role" or "authority". For + # example, an organization might have one `AttestationAuthority` for "QA" and + # one for "build". This Note is intended to act strictly as a grouping + # mechanism for the attached Occurrences (Attestations). This grouping + # mechanism also provides a security boundary, since IAM ACLs gate the ability + # for a principle to attach an Occurrence to a given Note. It also provides a + # single point of lookup to find all attached Attestation Occurrences, even if + # they don't all live in the same project. + class AttestationAuthority + include Google::Apis::Core::Hashable + + # This submessage provides human-readable hints about the purpose of the + # AttestationAuthority. Because the name of a Note acts as its resource + # reference, it is important to disambiguate the canonical name of the Note + # (which might be a UUID for security purposes) from "readable" names more + # suitable for debug output. Note that these hints should NOT be used to + # look up AttestationAuthorities in security sensitive contexts, such as when + # looking up Attestations to verify. + # Corresponds to the JSON property `hint` + # @return [Google::Apis::ContaineranalysisV1alpha1::AttestationAuthorityHint] + attr_accessor :hint + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @hint = args[:hint] if args.key?(:hint) + end + end + + # This submessage provides human-readable hints about the purpose of the + # AttestationAuthority. Because the name of a Note acts as its resource + # reference, it is important to disambiguate the canonical name of the Note + # (which might be a UUID for security purposes) from "readable" names more + # suitable for debug output. Note that these hints should NOT be used to + # look up AttestationAuthorities in security sensitive contexts, such as when + # looking up Attestations to verify. + class AttestationAuthorityHint + include Google::Apis::Core::Hashable + + # The human readable name of this Attestation Authority, for example "qa". + # Corresponds to the JSON property `humanReadableName` + # @return [String] + attr_accessor :human_readable_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @human_readable_name = args[:human_readable_name] if args.key?(:human_readable_name) + end + end + + # Specifies the audit configuration for a service. + # The configuration determines which permission types are logged, and what + # identities, if any, are exempted from logging. + # An AuditConfig must have one or more AuditLogConfigs. + # If there are AuditConfigs for both `allServices` and a specific service, + # the union of the two AuditConfigs is used for that service: the log_types + # specified in each AuditConfig are enabled, and the exempted_members in each + # AuditLogConfig are exempted. + # Example Policy with multiple AuditConfigs: + # ` + # "audit_configs": [ + # ` + # "service": "allServices" + # "audit_log_configs": [ + # ` + # "log_type": "DATA_READ", + # "exempted_members": [ + # "user:foo@gmail.com" + # ] + # `, + # ` + # "log_type": "DATA_WRITE", + # `, + # ` + # "log_type": "ADMIN_READ", + # ` + # ] + # `, + # ` + # "service": "fooservice.googleapis.com" + # "audit_log_configs": [ + # ` + # "log_type": "DATA_READ", + # `, + # ` + # "log_type": "DATA_WRITE", + # "exempted_members": [ + # "user:bar@gmail.com" + # ] + # ` + # ] + # ` + # ] + # ` + # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ + # logging. It also exempts foo@gmail.com from DATA_READ logging, and + # bar@gmail.com from DATA_WRITE logging. + class AuditConfig + include Google::Apis::Core::Hashable + + # The configuration for logging of each type of permission. + # Corresponds to the JSON property `auditLogConfigs` + # @return [Array] + attr_accessor :audit_log_configs + + # Specifies a service that will be enabled for audit logging. + # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + # `allServices` is a special value that covers all services. + # Corresponds to the JSON property `service` + # @return [String] + attr_accessor :service + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs) + @service = args[:service] if args.key?(:service) + end + end + + # Provides the configuration for logging a type of permissions. + # Example: + # ` + # "audit_log_configs": [ + # ` + # "log_type": "DATA_READ", + # "exempted_members": [ + # "user:foo@gmail.com" + # ] + # `, + # ` + # "log_type": "DATA_WRITE", + # ` + # ] + # ` + # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting + # foo@gmail.com from DATA_READ logging. + class AuditLogConfig + include Google::Apis::Core::Hashable + + # Specifies the identities that do not cause logging for this type of + # permission. + # Follows the same format of Binding.members. + # Corresponds to the JSON property `exemptedMembers` + # @return [Array] + attr_accessor :exempted_members + + # The log type that this config enables. + # Corresponds to the JSON property `logType` + # @return [String] + attr_accessor :log_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @exempted_members = args[:exempted_members] if args.key?(:exempted_members) + @log_type = args[:log_type] if args.key?(:log_type) + end + end + + # Basis describes the base image portion (Note) of the DockerImage + # relationship. Linked occurrences are derived from this or an + # equivalent image via: + # FROM + # Or an equivalent reference, e.g. a tag of the resource_url. + class Basis + include Google::Apis::Core::Hashable + + # A set of properties that uniquely identify a given Docker image. + # Corresponds to the JSON property `fingerprint` + # @return [Google::Apis::ContaineranalysisV1alpha1::Fingerprint] + attr_accessor :fingerprint + + # The resource_url for the resource representing the basis of + # associated occurrence images. + # Corresponds to the JSON property `resourceUrl` + # @return [String] + attr_accessor :resource_url + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @fingerprint = args[:fingerprint] if args.key?(:fingerprint) + @resource_url = args[:resource_url] if args.key?(:resource_url) + end + end + + # Associates `members` with a `role`. + class Binding + include Google::Apis::Core::Hashable + + # Represents an expression text. Example: + # title: "User account presence" + # description: "Determines whether the request has a user account" + # expression: "size(request.user) > 0" + # Corresponds to the JSON property `condition` + # @return [Google::Apis::ContaineranalysisV1alpha1::Expr] + attr_accessor :condition + + # Specifies the identities requesting access for a Cloud Platform resource. + # `members` can have the following values: + # * `allUsers`: A special identifier that represents anyone who is + # on the internet; with or without a Google account. + # * `allAuthenticatedUsers`: A special identifier that represents anyone + # who is authenticated with a Google account or a service account. + # * `user:`emailid``: An email address that represents a specific Google + # account. For example, `alice@gmail.com` . + # * `serviceAccount:`emailid``: An email address that represents a service + # account. For example, `my-other-app@appspot.gserviceaccount.com`. + # * `group:`emailid``: An email address that represents a Google group. + # For example, `admins@example.com`. + # * `domain:`domain``: A Google Apps domain name that represents all the + # users of that domain. For example, `google.com` or `example.com`. + # Corresponds to the JSON property `members` + # @return [Array] + attr_accessor :members + + # Role that is assigned to `members`. + # For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + # Corresponds to the JSON property `role` + # @return [String] + attr_accessor :role + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @condition = args[:condition] if args.key?(:condition) + @members = args[:members] if args.key?(:members) + @role = args[:role] if args.key?(:role) + end + end + + # Message encapsulating build provenance details. + class BuildDetails + include Google::Apis::Core::Hashable + + # Provenance of a build. Contains all information needed to verify the full + # details about the build from source to completion. + # Corresponds to the JSON property `provenance` + # @return [Google::Apis::ContaineranalysisV1alpha1::BuildProvenance] + attr_accessor :provenance + + # Serialized JSON representation of the provenance, used in generating the + # `BuildSignature` in the corresponding Result. After verifying the + # signature, `provenance_bytes` can be unmarshalled and compared to the + # provenance to confirm that it is unchanged. A base64-encoded string + # representation of the provenance bytes is used for the signature in order + # to interoperate with openssl which expects this format for signature + # verification. + # The serialized form is captured both to avoid ambiguity in how the + # provenance is marshalled to json as well to prevent incompatibilities with + # future changes. + # Corresponds to the JSON property `provenanceBytes` + # @return [String] + attr_accessor :provenance_bytes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @provenance = args[:provenance] if args.key?(:provenance) + @provenance_bytes = args[:provenance_bytes] if args.key?(:provenance_bytes) + end + end + + # Provenance of a build. Contains all information needed to verify the full + # details about the build from source to completion. + class BuildProvenance + include Google::Apis::Core::Hashable + + # Special options applied to this build. This is a catch-all field where + # build providers can enter any desired additional details. + # Corresponds to the JSON property `buildOptions` + # @return [Hash] + attr_accessor :build_options + + # Version string of the builder at the time this build was executed. + # Corresponds to the JSON property `builderVersion` + # @return [String] + attr_accessor :builder_version + + # Output of the build. + # Corresponds to the JSON property `builtArtifacts` + # @return [Array] + attr_accessor :built_artifacts + + # Commands requested by the build. + # Corresponds to the JSON property `commands` + # @return [Array] + attr_accessor :commands + + # Time at which the build was created. + # Corresponds to the JSON property `createTime` + # @return [String] + attr_accessor :create_time + + # E-mail address of the user who initiated this build. Note that this was the + # user's e-mail address at the time the build was initiated; this address may + # not represent the same end-user for all time. + # Corresponds to the JSON property `creator` + # @return [String] + attr_accessor :creator + + # Time at which execution of the build was finished. + # Corresponds to the JSON property `finishTime` + # @return [String] + attr_accessor :finish_time + + # Unique identifier of the build. + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # Google Cloud Storage bucket where logs were written. + # Corresponds to the JSON property `logsBucket` + # @return [String] + attr_accessor :logs_bucket + + # ID of the project. + # Corresponds to the JSON property `projectId` + # @return [String] + attr_accessor :project_id + + # Source describes the location of the source used for the build. + # Corresponds to the JSON property `sourceProvenance` + # @return [Google::Apis::ContaineranalysisV1alpha1::Source] + attr_accessor :source_provenance + + # Time at which execution of the build was started. + # Corresponds to the JSON property `startTime` + # @return [String] + attr_accessor :start_time + + # Trigger identifier if the build was triggered automatically; empty if not. + # Corresponds to the JSON property `triggerId` + # @return [String] + attr_accessor :trigger_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @build_options = args[:build_options] if args.key?(:build_options) + @builder_version = args[:builder_version] if args.key?(:builder_version) + @built_artifacts = args[:built_artifacts] if args.key?(:built_artifacts) + @commands = args[:commands] if args.key?(:commands) + @create_time = args[:create_time] if args.key?(:create_time) + @creator = args[:creator] if args.key?(:creator) + @finish_time = args[:finish_time] if args.key?(:finish_time) + @id = args[:id] if args.key?(:id) + @logs_bucket = args[:logs_bucket] if args.key?(:logs_bucket) + @project_id = args[:project_id] if args.key?(:project_id) + @source_provenance = args[:source_provenance] if args.key?(:source_provenance) + @start_time = args[:start_time] if args.key?(:start_time) + @trigger_id = args[:trigger_id] if args.key?(:trigger_id) + end + end + + # Message encapsulating the signature of the verified build. + class BuildSignature + include Google::Apis::Core::Hashable + + # An Id for the key used to sign. This could be either an Id for the key + # stored in `public_key` (such as the Id or fingerprint for a PGP key, or the + # CN for a cert), or a reference to an external key (such as a reference to a + # key in Cloud Key Management Service). + # Corresponds to the JSON property `keyId` + # @return [String] + attr_accessor :key_id + + # The type of the key, either stored in `public_key` or referenced in + # `key_id` + # Corresponds to the JSON property `keyType` + # @return [String] + attr_accessor :key_type + + # Public key of the builder which can be used to verify that the related + # findings are valid and unchanged. If `key_type` is empty, this defaults + # to PEM encoded public keys. + # This field may be empty if `key_id` references an external key. + # For Cloud Build based signatures, this is a PEM encoded public + # key. To verify the Cloud Build signature, place the contents of + # this field into a file (public.pem). The signature field is base64-decoded + # into its binary representation in signature.bin, and the provenance bytes + # from `BuildDetails` are base64-decoded into a binary representation in + # signed.bin. OpenSSL can then verify the signature: + # `openssl sha256 -verify public.pem -signature signature.bin signed.bin` + # Corresponds to the JSON property `publicKey` + # @return [String] + attr_accessor :public_key + + # Signature of the related `BuildProvenance`, encoded in a base64 string. + # Corresponds to the JSON property `signature` + # @return [String] + attr_accessor :signature + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @key_id = args[:key_id] if args.key?(:key_id) + @key_type = args[:key_type] if args.key?(:key_type) + @public_key = args[:public_key] if args.key?(:public_key) + @signature = args[:signature] if args.key?(:signature) + end + end + + # Note holding the version of the provider's builder and the signature of + # the provenance message in linked BuildDetails. + class BuildType + include Google::Apis::Core::Hashable + + # Version of the builder which produced this Note. + # Corresponds to the JSON property `builderVersion` + # @return [String] + attr_accessor :builder_version + + # Message encapsulating the signature of the verified build. + # Corresponds to the JSON property `signature` + # @return [Google::Apis::ContaineranalysisV1alpha1::BuildSignature] + attr_accessor :signature + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @builder_version = args[:builder_version] if args.key?(:builder_version) + @signature = args[:signature] if args.key?(:signature) + end + end + + # Command describes a step performed as part of the build pipeline. + class Command + include Google::Apis::Core::Hashable + + # Command-line arguments used when executing this Command. + # Corresponds to the JSON property `args` + # @return [Array] + attr_accessor :args + + # Working directory (relative to project source root) used when running + # this Command. + # Corresponds to the JSON property `dir` + # @return [String] + attr_accessor :dir + + # Environment variables set before running this Command. + # Corresponds to the JSON property `env` + # @return [Array] + attr_accessor :env + + # Optional unique identifier for this Command, used in wait_for to reference + # this Command as a dependency. + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # Name of the command, as presented on the command line, or if the command is + # packaged as a Docker container, as presented to `docker pull`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The ID(s) of the Command(s) that this Command depends on. + # Corresponds to the JSON property `waitFor` + # @return [Array] + attr_accessor :wait_for + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @args = args[:args] if args.key?(:args) + @dir = args[:dir] if args.key?(:dir) + @env = args[:env] if args.key?(:env) + @id = args[:id] if args.key?(:id) + @name = args[:name] if args.key?(:name) + @wait_for = args[:wait_for] if args.key?(:wait_for) + end + end + + # Request for creating an operation + class CreateOperationRequest + include Google::Apis::Core::Hashable + + # This resource represents a long-running operation that is the result of a + # network API call. + # Corresponds to the JSON property `operation` + # @return [Google::Apis::ContaineranalysisV1alpha1::Operation] + attr_accessor :operation + + # The ID to use for this operation. + # Corresponds to the JSON property `operationId` + # @return [String] + attr_accessor :operation_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @operation = args[:operation] if args.key?(:operation) + @operation_id = args[:operation_id] if args.key?(:operation_id) + end + end + + # An artifact that can be deployed in some runtime. + class Deployable + include Google::Apis::Core::Hashable + + # Resource URI for the artifact being deployed. + # Corresponds to the JSON property `resourceUri` + # @return [Array] + attr_accessor :resource_uri + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @resource_uri = args[:resource_uri] if args.key?(:resource_uri) + end + end + + # The period during which some deployable was active in a runtime. + class Deployment + include Google::Apis::Core::Hashable + + # Address of the runtime element hosting this deployment. + # Corresponds to the JSON property `address` + # @return [String] + attr_accessor :address + + # Configuration used to create this deployment. + # Corresponds to the JSON property `config` + # @return [String] + attr_accessor :config + + # Beginning of the lifetime of this deployment. + # Corresponds to the JSON property `deployTime` + # @return [String] + attr_accessor :deploy_time + + # Platform hosting this deployment. + # Corresponds to the JSON property `platform` + # @return [String] + attr_accessor :platform + + # Output only. Resource URI for the artifact being deployed taken from the + # deployable field with the same name. + # Corresponds to the JSON property `resourceUri` + # @return [Array] + attr_accessor :resource_uri + + # End of the lifetime of this deployment. + # Corresponds to the JSON property `undeployTime` + # @return [String] + attr_accessor :undeploy_time + + # Identity of the user that triggered this deployment. + # Corresponds to the JSON property `userEmail` + # @return [String] + attr_accessor :user_email + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @address = args[:address] if args.key?(:address) + @config = args[:config] if args.key?(:config) + @deploy_time = args[:deploy_time] if args.key?(:deploy_time) + @platform = args[:platform] if args.key?(:platform) + @resource_uri = args[:resource_uri] if args.key?(:resource_uri) + @undeploy_time = args[:undeploy_time] if args.key?(:undeploy_time) + @user_email = args[:user_email] if args.key?(:user_email) + end + end + + # Derived describes the derived image portion (Occurrence) of the + # DockerImage relationship. This image would be produced from a Dockerfile + # with FROM . + class Derived + include Google::Apis::Core::Hashable + + # Output only. This contains the base image URL for the derived image + # occurrence. + # Corresponds to the JSON property `baseResourceUrl` + # @return [String] + attr_accessor :base_resource_url + + # Output only. The number of layers by which this image differs from the + # associated image basis. + # Corresponds to the JSON property `distance` + # @return [Fixnum] + attr_accessor :distance + + # A set of properties that uniquely identify a given Docker image. + # Corresponds to the JSON property `fingerprint` + # @return [Google::Apis::ContaineranalysisV1alpha1::Fingerprint] + attr_accessor :fingerprint + + # This contains layer-specific metadata, if populated it has length + # "distance" and is ordered with [distance] being the layer immediately + # following the base image and [1] being the final layer. + # Corresponds to the JSON property `layerInfo` + # @return [Array] + attr_accessor :layer_info + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @base_resource_url = args[:base_resource_url] if args.key?(:base_resource_url) + @distance = args[:distance] if args.key?(:distance) + @fingerprint = args[:fingerprint] if args.key?(:fingerprint) + @layer_info = args[:layer_info] if args.key?(:layer_info) + end + end + + # Identifies all occurrences of this vulnerability in the package for a + # specific distro/location + # For example: glibc in cpe:/o:debian:debian_linux:8 for versions 2.1 - 2.2 + class Detail + include Google::Apis::Core::Hashable + + # The cpe_uri in [cpe format] (https://cpe.mitre.org/specification/) in + # which the vulnerability manifests. Examples include distro or storage + # location for vulnerable jar. + # This field can be used as a filter in list requests. + # Corresponds to the JSON property `cpeUri` + # @return [String] + attr_accessor :cpe_uri + + # A vendor-specific description of this note. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # The location of the vulnerability + # Corresponds to the JSON property `fixedLocation` + # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation] + attr_accessor :fixed_location + + # Whether this Detail is obsolete. Occurrences are expected not to point to + # obsolete details. + # Corresponds to the JSON property `isObsolete` + # @return [Boolean] + attr_accessor :is_obsolete + alias_method :is_obsolete?, :is_obsolete + + # Version contains structured information about the version of the package. + # For a discussion of this in Debian/Ubuntu: + # http://serverfault.com/questions/604541/debian-packages-version-convention + # For a discussion of this in Redhat/Fedora/Centos: + # http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/ + # Corresponds to the JSON property `maxAffectedVersion` + # @return [Google::Apis::ContaineranalysisV1alpha1::Version] + attr_accessor :max_affected_version + + # Version contains structured information about the version of the package. + # For a discussion of this in Debian/Ubuntu: + # http://serverfault.com/questions/604541/debian-packages-version-convention + # For a discussion of this in Redhat/Fedora/Centos: + # http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/ + # Corresponds to the JSON property `minAffectedVersion` + # @return [Google::Apis::ContaineranalysisV1alpha1::Version] + attr_accessor :min_affected_version + + # The name of the package where the vulnerability was found. + # This field can be used as a filter in list requests. + # Corresponds to the JSON property `package` + # @return [String] + attr_accessor :package + + # The type of package; whether native or non native(ruby gems, + # node.js packages etc) + # Corresponds to the JSON property `packageType` + # @return [String] + attr_accessor :package_type + + # The severity (eg: distro assigned severity) for this vulnerability. + # Corresponds to the JSON property `severityName` + # @return [String] + attr_accessor :severity_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri) + @description = args[:description] if args.key?(:description) + @fixed_location = args[:fixed_location] if args.key?(:fixed_location) + @is_obsolete = args[:is_obsolete] if args.key?(:is_obsolete) + @max_affected_version = args[:max_affected_version] if args.key?(:max_affected_version) + @min_affected_version = args[:min_affected_version] if args.key?(:min_affected_version) + @package = args[:package] if args.key?(:package) + @package_type = args[:package_type] if args.key?(:package_type) + @severity_name = args[:severity_name] if args.key?(:severity_name) + end + end + + # Provides information about the scan status of a discovered resource. + class Discovered + include Google::Apis::Core::Hashable + + # The status of discovery for the resource. + # Corresponds to the JSON property `analysisStatus` + # @return [String] + attr_accessor :analysis_status + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `analysisStatusError` + # @return [Google::Apis::ContaineranalysisV1alpha1::Status] + attr_accessor :analysis_status_error + + # Whether the resource is continuously analyzed. + # Corresponds to the JSON property `continuousAnalysis` + # @return [String] + attr_accessor :continuous_analysis + + # This resource represents a long-running operation that is the result of a + # network API call. + # Corresponds to the JSON property `operation` + # @return [Google::Apis::ContaineranalysisV1alpha1::Operation] + attr_accessor :operation + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @analysis_status = args[:analysis_status] if args.key?(:analysis_status) + @analysis_status_error = args[:analysis_status_error] if args.key?(:analysis_status_error) + @continuous_analysis = args[:continuous_analysis] if args.key?(:continuous_analysis) + @operation = args[:operation] if args.key?(:operation) + end + end + + # A note that indicates a type of analysis a provider would perform. This note + # exists in a provider's project. A `Discovery` occurrence is created in a + # consumer's project at the start of analysis. The occurrence's operation will + # indicate the status of the analysis. Absence of an occurrence linked to this + # note for a resource indicates that analysis hasn't started. + class Discovery + include Google::Apis::Core::Hashable + + # The kind of analysis that is handled by this discovery. + # Corresponds to the JSON property `analysisKind` + # @return [String] + attr_accessor :analysis_kind + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @analysis_kind = args[:analysis_kind] if args.key?(:analysis_kind) + end + end + + # This represents a particular channel of distribution for a given package. + # e.g. Debian's jessie-backports dpkg mirror + class Distribution + include Google::Apis::Core::Hashable + + # The CPU architecture for which packages in this distribution + # channel were built + # Corresponds to the JSON property `architecture` + # @return [String] + attr_accessor :architecture + + # The cpe_uri in [cpe format](https://cpe.mitre.org/specification/) + # denoting the package manager version distributing a package. + # Corresponds to the JSON property `cpeUri` + # @return [String] + attr_accessor :cpe_uri + + # The distribution channel-specific description of this package. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Version contains structured information about the version of the package. + # For a discussion of this in Debian/Ubuntu: + # http://serverfault.com/questions/604541/debian-packages-version-convention + # For a discussion of this in Redhat/Fedora/Centos: + # http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/ + # Corresponds to the JSON property `latestVersion` + # @return [Google::Apis::ContaineranalysisV1alpha1::Version] + attr_accessor :latest_version + + # A freeform string denoting the maintainer of this package. + # Corresponds to the JSON property `maintainer` + # @return [String] + attr_accessor :maintainer + + # The distribution channel-specific homepage for this package. + # Corresponds to the JSON property `url` + # @return [String] + attr_accessor :url + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @architecture = args[:architecture] if args.key?(:architecture) + @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri) + @description = args[:description] if args.key?(:description) + @latest_version = args[:latest_version] if args.key?(:latest_version) + @maintainer = args[:maintainer] if args.key?(:maintainer) + @url = args[:url] if args.key?(:url) + end + end + + # 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); + # ` + # The JSON representation for `Empty` is empty JSON object ````. + class Empty + include Google::Apis::Core::Hashable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + end + end + + # Represents an expression text. Example: + # title: "User account presence" + # description: "Determines whether the request has a user account" + # expression: "size(request.user) > 0" + class Expr + include Google::Apis::Core::Hashable + + # An optional description of the expression. This is a longer text which + # describes the expression, e.g. when hovered over it in a UI. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Textual representation of an expression in + # Common Expression Language syntax. + # The application context of the containing message determines which + # well-known feature set of CEL is supported. + # Corresponds to the JSON property `expression` + # @return [String] + attr_accessor :expression + + # An optional string indicating the location of the expression for error + # reporting, e.g. a file name and a position in the file. + # Corresponds to the JSON property `location` + # @return [String] + attr_accessor :location + + # An optional title for the expression, i.e. a short string describing + # its purpose. This can be used e.g. in UIs which allow to enter the + # expression. + # Corresponds to the JSON property `title` + # @return [String] + attr_accessor :title + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] if args.key?(:description) + @expression = args[:expression] if args.key?(:expression) + @location = args[:location] if args.key?(:location) + @title = args[:title] if args.key?(:title) + end + end + + # Container message for hashes of byte content of files, used in Source + # messages to verify integrity of source input to the build. + class FileHashes + include Google::Apis::Core::Hashable + + # Collection of file hashes. + # Corresponds to the JSON property `fileHash` + # @return [Array] + attr_accessor :file_hash + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @file_hash = args[:file_hash] if args.key?(:file_hash) + end + end + + # A set of properties that uniquely identify a given Docker image. + class Fingerprint + include Google::Apis::Core::Hashable + + # The layer-id of the final layer in the Docker image's v1 + # representation. + # This field can be used as a filter in list requests. + # Corresponds to the JSON property `v1Name` + # @return [String] + attr_accessor :v1_name + + # The ordered list of v2 blobs that represent a given image. + # Corresponds to the JSON property `v2Blob` + # @return [Array] + attr_accessor :v2_blob + + # Output only. The name of the image's v2 blobs computed via: + # [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1]) + # Only the name of the final blob is kept. + # This field can be used as a filter in list requests. + # Corresponds to the JSON property `v2Name` + # @return [String] + attr_accessor :v2_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @v1_name = args[:v1_name] if args.key?(:v1_name) + @v2_blob = args[:v2_blob] if args.key?(:v2_blob) + @v2_name = args[:v2_name] if args.key?(:v2_name) + end + end + + # Request message for `GetIamPolicy` method. + class GetIamPolicyRequest + include Google::Apis::Core::Hashable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + end + end + + # A summary of how many vulnz occurrences there are per severity type. + # counts by groups, or if we should have different summary messages + # like this. + class GetVulnzOccurrencesSummaryResponse + include Google::Apis::Core::Hashable + + # A map of how many occurrences were found for each severity. + # Corresponds to the JSON property `counts` + # @return [Array] + attr_accessor :counts + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @counts = args[:counts] if args.key?(:counts) + end + end + + # An alias to a repo revision. + class GoogleDevtoolsContaineranalysisV1alpha1AliasContext + include Google::Apis::Core::Hashable + + # The alias kind. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # The alias name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @kind = args[:kind] if args.key?(:kind) + @name = args[:name] if args.key?(:name) + end + end + + # A CloudRepoSourceContext denotes a particular revision in a Google Cloud + # Source Repo. + class GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContext + include Google::Apis::Core::Hashable + + # An alias to a repo revision. + # Corresponds to the JSON property `aliasContext` + # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1AliasContext] + attr_accessor :alias_context + + # A unique identifier for a Cloud Repo. + # Corresponds to the JSON property `repoId` + # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1RepoId] + attr_accessor :repo_id + + # A revision ID. + # Corresponds to the JSON property `revisionId` + # @return [String] + attr_accessor :revision_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @alias_context = args[:alias_context] if args.key?(:alias_context) + @repo_id = args[:repo_id] if args.key?(:repo_id) + @revision_id = args[:revision_id] if args.key?(:revision_id) + end + end + + # A SourceContext referring to a Gerrit project. + class GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContext + include Google::Apis::Core::Hashable + + # An alias to a repo revision. + # Corresponds to the JSON property `aliasContext` + # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1AliasContext] + attr_accessor :alias_context + + # The full project name within the host. Projects may be nested, so + # "project/subproject" is a valid project name. The "repo name" is + # the hostURI/project. + # Corresponds to the JSON property `gerritProject` + # @return [String] + attr_accessor :gerrit_project + + # The URI of a running Gerrit instance. + # Corresponds to the JSON property `hostUri` + # @return [String] + attr_accessor :host_uri + + # A revision (commit) ID. + # Corresponds to the JSON property `revisionId` + # @return [String] + attr_accessor :revision_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @alias_context = args[:alias_context] if args.key?(:alias_context) + @gerrit_project = args[:gerrit_project] if args.key?(:gerrit_project) + @host_uri = args[:host_uri] if args.key?(:host_uri) + @revision_id = args[:revision_id] if args.key?(:revision_id) + end + end + + # A GitSourceContext denotes a particular revision in a third party Git + # repository (e.g., GitHub). + class GoogleDevtoolsContaineranalysisV1alpha1GitSourceContext + include Google::Apis::Core::Hashable + + # Required. + # Git commit hash. + # Corresponds to the JSON property `revisionId` + # @return [String] + attr_accessor :revision_id + + # Git repository URL. + # Corresponds to the JSON property `url` + # @return [String] + attr_accessor :url + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @revision_id = args[:revision_id] if args.key?(:revision_id) + @url = args[:url] if args.key?(:url) + end + end + + # Metadata for all operations used and required for all operations + # that created by Container Analysis Providers + class GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata + include Google::Apis::Core::Hashable + + # Output only. The time this operation was created. + # Corresponds to the JSON property `createTime` + # @return [String] + attr_accessor :create_time + + # Output only. The time that this operation was marked completed or failed. + # Corresponds to the JSON property `endTime` + # @return [String] + attr_accessor :end_time + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @create_time = args[:create_time] if args.key?(:create_time) + @end_time = args[:end_time] if args.key?(:end_time) + end + end + + # Selects a repo using a Google Cloud Platform project ID (e.g., + # winged-cargo-31) and a repo name within that project. + class GoogleDevtoolsContaineranalysisV1alpha1ProjectRepoId + include Google::Apis::Core::Hashable + + # The ID of the project. + # Corresponds to the JSON property `projectId` + # @return [String] + attr_accessor :project_id + + # The name of the repo. Leave empty for the default repo. + # Corresponds to the JSON property `repoName` + # @return [String] + attr_accessor :repo_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @project_id = args[:project_id] if args.key?(:project_id) + @repo_name = args[:repo_name] if args.key?(:repo_name) + end + end + + # A unique identifier for a Cloud Repo. + class GoogleDevtoolsContaineranalysisV1alpha1RepoId + include Google::Apis::Core::Hashable + + # Selects a repo using a Google Cloud Platform project ID (e.g., + # winged-cargo-31) and a repo name within that project. + # Corresponds to the JSON property `projectRepoId` + # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1ProjectRepoId] + attr_accessor :project_repo_id + + # A server-assigned, globally unique identifier. + # Corresponds to the JSON property `uid` + # @return [String] + attr_accessor :uid + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @project_repo_id = args[:project_repo_id] if args.key?(:project_repo_id) + @uid = args[:uid] if args.key?(:uid) + end + end + + # A SourceContext is a reference to a tree of files. A SourceContext together + # with a path point to a unique revision of a single file or directory. + class GoogleDevtoolsContaineranalysisV1alpha1SourceContext + include Google::Apis::Core::Hashable + + # A CloudRepoSourceContext denotes a particular revision in a Google Cloud + # Source Repo. + # Corresponds to the JSON property `cloudRepo` + # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContext] + attr_accessor :cloud_repo + + # A SourceContext referring to a Gerrit project. + # Corresponds to the JSON property `gerrit` + # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContext] + attr_accessor :gerrit + + # A GitSourceContext denotes a particular revision in a third party Git + # repository (e.g., GitHub). + # Corresponds to the JSON property `git` + # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1GitSourceContext] + attr_accessor :git + + # Labels with user defined metadata. + # Corresponds to the JSON property `labels` + # @return [Hash] + attr_accessor :labels + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cloud_repo = args[:cloud_repo] if args.key?(:cloud_repo) + @gerrit = args[:gerrit] if args.key?(:gerrit) + @git = args[:git] if args.key?(:git) + @labels = args[:labels] if args.key?(:labels) + end + end + + # Container message for hash values. + class HashProp + include Google::Apis::Core::Hashable + + # The type of hash that was performed. + # Corresponds to the JSON property `type` + # @return [String] + attr_accessor :type + + # The hash value. + # Corresponds to the JSON property `value` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @type = args[:type] if args.key?(:type) + @value = args[:value] if args.key?(:value) + end + end + + # This represents how a particular software package may be installed on + # a system. + class Installation + include Google::Apis::Core::Hashable + + # All of the places within the filesystem versions of this package + # have been found. + # Corresponds to the JSON property `location` + # @return [Array] + attr_accessor :location + + # Output only. The name of the installed package. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @location = args[:location] if args.key?(:location) + @name = args[:name] if args.key?(:name) + end + end + + # Layer holds metadata specific to a layer of a Docker image. + class Layer + include Google::Apis::Core::Hashable + + # The recovered arguments to the Dockerfile directive. + # Corresponds to the JSON property `arguments` + # @return [String] + attr_accessor :arguments + + # The recovered Dockerfile directive used to construct this layer. + # Corresponds to the JSON property `directive` + # @return [String] + attr_accessor :directive + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arguments = args[:arguments] if args.key?(:arguments) + @directive = args[:directive] if args.key?(:directive) + end + end + + # Response including listed occurrences for a note. + class ListNoteOccurrencesResponse + include Google::Apis::Core::Hashable + + # Token to receive the next page of notes. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # The occurrences attached to the specified note. + # Corresponds to the JSON property `occurrences` + # @return [Array] + attr_accessor :occurrences + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @occurrences = args[:occurrences] if args.key?(:occurrences) + end + end + + # Response including listed notes. + class ListNotesResponse + include Google::Apis::Core::Hashable + + # The next pagination token in the list response. It should be used as + # page_token for the following request. An empty value means no more result. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # The occurrences requested + # Corresponds to the JSON property `notes` + # @return [Array] + attr_accessor :notes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @notes = args[:notes] if args.key?(:notes) + end + end + + # Response including listed active occurrences. + class ListOccurrencesResponse + include Google::Apis::Core::Hashable + + # The next pagination token in the list response. It should be used as + # `page_token` for the following request. An empty value means no more + # results. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # The occurrences requested. + # Corresponds to the JSON property `occurrences` + # @return [Array] + attr_accessor :occurrences + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @occurrences = args[:occurrences] if args.key?(:occurrences) + end + end + + # A list of scan configs for the project. + class ListScanConfigsResponse + include Google::Apis::Core::Hashable + + # A page token to pass in order to get more scan configs. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # The set of scan configs. + # Corresponds to the JSON property `scanConfigs` + # @return [Array] + attr_accessor :scan_configs + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @scan_configs = args[:scan_configs] if args.key?(:scan_configs) + end + end + + # An occurrence of a particular package installation found within a + # system's filesystem. + # e.g. glibc was found in /var/lib/dpkg/status + class Location + include Google::Apis::Core::Hashable + + # The cpe_uri in [cpe format](https://cpe.mitre.org/specification/) + # denoting the package manager version distributing a package. + # Corresponds to the JSON property `cpeUri` + # @return [String] + attr_accessor :cpe_uri + + # The path from which we gathered that this package/version is installed. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + # Version contains structured information about the version of the package. + # For a discussion of this in Debian/Ubuntu: + # http://serverfault.com/questions/604541/debian-packages-version-convention + # For a discussion of this in Redhat/Fedora/Centos: + # http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/ + # Corresponds to the JSON property `version` + # @return [Google::Apis::ContaineranalysisV1alpha1::Version] + attr_accessor :version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri) + @path = args[:path] if args.key?(:path) + @version = args[:version] if args.key?(:version) + end + end + + # Provides a detailed description of a `Note`. + class Note + include Google::Apis::Core::Hashable + + # Note kind that represents a logical attestation "role" or "authority". For + # example, an organization might have one `AttestationAuthority` for "QA" and + # one for "build". This Note is intended to act strictly as a grouping + # mechanism for the attached Occurrences (Attestations). This grouping + # mechanism also provides a security boundary, since IAM ACLs gate the ability + # for a principle to attach an Occurrence to a given Note. It also provides a + # single point of lookup to find all attached Attestation Occurrences, even if + # they don't all live in the same project. + # Corresponds to the JSON property `attestationAuthority` + # @return [Google::Apis::ContaineranalysisV1alpha1::AttestationAuthority] + attr_accessor :attestation_authority + + # Basis describes the base image portion (Note) of the DockerImage + # relationship. Linked occurrences are derived from this or an + # equivalent image via: + # FROM + # Or an equivalent reference, e.g. a tag of the resource_url. + # Corresponds to the JSON property `baseImage` + # @return [Google::Apis::ContaineranalysisV1alpha1::Basis] + attr_accessor :base_image + + # Note holding the version of the provider's builder and the signature of + # the provenance message in linked BuildDetails. + # Corresponds to the JSON property `buildType` + # @return [Google::Apis::ContaineranalysisV1alpha1::BuildType] + attr_accessor :build_type + + # Output only. The time this note was created. This field can be used as a + # filter in list requests. + # Corresponds to the JSON property `createTime` + # @return [String] + attr_accessor :create_time + + # An artifact that can be deployed in some runtime. + # Corresponds to the JSON property `deployable` + # @return [Google::Apis::ContaineranalysisV1alpha1::Deployable] + attr_accessor :deployable + + # A note that indicates a type of analysis a provider would perform. This note + # exists in a provider's project. A `Discovery` occurrence is created in a + # consumer's project at the start of analysis. The occurrence's operation will + # indicate the status of the analysis. Absence of an occurrence linked to this + # note for a resource indicates that analysis hasn't started. + # Corresponds to the JSON property `discovery` + # @return [Google::Apis::ContaineranalysisV1alpha1::Discovery] + attr_accessor :discovery + + # Time of expiration for this note, null if note does not expire. + # Corresponds to the JSON property `expirationTime` + # @return [String] + attr_accessor :expiration_time + + # Output only. This explicitly denotes which kind of note is specified. This + # field can be used as a filter in list requests. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # A detailed description of this `Note`. + # Corresponds to the JSON property `longDescription` + # @return [String] + attr_accessor :long_description + + # The name of the note in the form + # "providers/`provider_id`/notes/`NOTE_ID`" + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # This represents a particular package that is distributed over + # various channels. + # e.g. glibc (aka libc6) is distributed by many, at various versions. + # Corresponds to the JSON property `package` + # @return [Google::Apis::ContaineranalysisV1alpha1::Package] + attr_accessor :package + + # URLs associated with this note + # Corresponds to the JSON property `relatedUrl` + # @return [Array] + attr_accessor :related_url + + # A one sentence description of this `Note`. + # Corresponds to the JSON property `shortDescription` + # @return [String] + attr_accessor :short_description + + # Output only. The time this note was last updated. This field can be used as + # a filter in list requests. + # Corresponds to the JSON property `updateTime` + # @return [String] + attr_accessor :update_time + + # VulnerabilityType provides metadata about a security vulnerability. + # Corresponds to the JSON property `vulnerabilityType` + # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityType] + attr_accessor :vulnerability_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @attestation_authority = args[:attestation_authority] if args.key?(:attestation_authority) + @base_image = args[:base_image] if args.key?(:base_image) + @build_type = args[:build_type] if args.key?(:build_type) + @create_time = args[:create_time] if args.key?(:create_time) + @deployable = args[:deployable] if args.key?(:deployable) + @discovery = args[:discovery] if args.key?(:discovery) + @expiration_time = args[:expiration_time] if args.key?(:expiration_time) + @kind = args[:kind] if args.key?(:kind) + @long_description = args[:long_description] if args.key?(:long_description) + @name = args[:name] if args.key?(:name) + @package = args[:package] if args.key?(:package) + @related_url = args[:related_url] if args.key?(:related_url) + @short_description = args[:short_description] if args.key?(:short_description) + @update_time = args[:update_time] if args.key?(:update_time) + @vulnerability_type = args[:vulnerability_type] if args.key?(:vulnerability_type) + end + end + + # `Occurrence` includes information about analysis occurrences for an image. + class Occurrence + include Google::Apis::Core::Hashable + + # Occurrence that represents a single "attestation". The authenticity of an + # Attestation can be verified using the attached signature. If the verifier + # trusts the public key of the signer, then verifying the signature is + # sufficient to establish trust. In this circumstance, the + # AttestationAuthority to which this Attestation is attached is primarily + # useful for look-up (how to find this Attestation if you already know the + # Authority and artifact to be verified) and intent (which authority was this + # attestation intended to sign for). + # Corresponds to the JSON property `attestation` + # @return [Google::Apis::ContaineranalysisV1alpha1::Attestation] + attr_accessor :attestation + + # Message encapsulating build provenance details. + # Corresponds to the JSON property `buildDetails` + # @return [Google::Apis::ContaineranalysisV1alpha1::BuildDetails] + attr_accessor :build_details + + # Output only. The time this `Occurrence` was created. + # Corresponds to the JSON property `createTime` + # @return [String] + attr_accessor :create_time + + # The period during which some deployable was active in a runtime. + # Corresponds to the JSON property `deployment` + # @return [Google::Apis::ContaineranalysisV1alpha1::Deployment] + attr_accessor :deployment + + # Derived describes the derived image portion (Occurrence) of the + # DockerImage relationship. This image would be produced from a Dockerfile + # with FROM . + # Corresponds to the JSON property `derivedImage` + # @return [Google::Apis::ContaineranalysisV1alpha1::Derived] + attr_accessor :derived_image + + # Provides information about the scan status of a discovered resource. + # Corresponds to the JSON property `discovered` + # @return [Google::Apis::ContaineranalysisV1alpha1::Discovered] + attr_accessor :discovered + + # This represents how a particular software package may be installed on + # a system. + # Corresponds to the JSON property `installation` + # @return [Google::Apis::ContaineranalysisV1alpha1::Installation] + attr_accessor :installation + + # Output only. This explicitly denotes which of the `Occurrence` details are + # specified. This field can be used as a filter in list requests. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # Output only. The name of the `Occurrence` in the form + # "projects/`project_id`/occurrences/`OCCURRENCE_ID`" + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # An analysis note associated with this image, in the form + # "providers/`provider_id`/notes/`NOTE_ID`" + # This field can be used as a filter in list requests. + # Corresponds to the JSON property `noteName` + # @return [String] + attr_accessor :note_name + + # A description of actions that can be taken to remedy the `Note` + # Corresponds to the JSON property `remediation` + # @return [String] + attr_accessor :remediation + + # Resource is an entity that can have metadata. E.g., a Docker image. + # Corresponds to the JSON property `resource` + # @return [Google::Apis::ContaineranalysisV1alpha1::Resource] + attr_accessor :resource + + # The unique URL of the image or the container for which the `Occurrence` + # applies. For example, https://gcr.io/project/image@sha256:foo This field + # can be used as a filter in list requests. + # Corresponds to the JSON property `resourceUrl` + # @return [String] + attr_accessor :resource_url + + # Output only. The time this `Occurrence` was last updated. + # Corresponds to the JSON property `updateTime` + # @return [String] + attr_accessor :update_time + + # Used by Occurrence to point to where the vulnerability exists and how + # to fix it. + # Corresponds to the JSON property `vulnerabilityDetails` + # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityDetails] + attr_accessor :vulnerability_details + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @attestation = args[:attestation] if args.key?(:attestation) + @build_details = args[:build_details] if args.key?(:build_details) + @create_time = args[:create_time] if args.key?(:create_time) + @deployment = args[:deployment] if args.key?(:deployment) + @derived_image = args[:derived_image] if args.key?(:derived_image) + @discovered = args[:discovered] if args.key?(:discovered) + @installation = args[:installation] if args.key?(:installation) + @kind = args[:kind] if args.key?(:kind) + @name = args[:name] if args.key?(:name) + @note_name = args[:note_name] if args.key?(:note_name) + @remediation = args[:remediation] if args.key?(:remediation) + @resource = args[:resource] if args.key?(:resource) + @resource_url = args[:resource_url] if args.key?(:resource_url) + @update_time = args[:update_time] if args.key?(:update_time) + @vulnerability_details = args[:vulnerability_details] if args.key?(:vulnerability_details) + end + end + + # This resource represents a long-running operation that is the result of a + # network API call. + class Operation + include Google::Apis::Core::Hashable + + # 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. + # Corresponds to the JSON property `done` + # @return [Boolean] + attr_accessor :done + alias_method :done?, :done + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `error` + # @return [Google::Apis::ContaineranalysisV1alpha1::Status] + attr_accessor :error + + # 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. + # Corresponds to the JSON property `metadata` + # @return [Hash] + attr_accessor :metadata + + # 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 have the format of `operations/some/unique/name`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The normal response of the operation in case of success. If the original + # method returns no data on success, such as `Delete`, the response is + # `google.protobuf.Empty`. If the original method is standard + # `Get`/`Create`/`Update`, the response should be the resource. For other + # methods, the response should have the type `XxxResponse`, where `Xxx` + # is the original method name. For example, if the original method name + # is `TakeSnapshot()`, the inferred response type is + # `TakeSnapshotResponse`. + # Corresponds to the JSON property `response` + # @return [Hash] + attr_accessor :response + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @done = args[:done] if args.key?(:done) + @error = args[:error] if args.key?(:error) + @metadata = args[:metadata] if args.key?(:metadata) + @name = args[:name] if args.key?(:name) + @response = args[:response] if args.key?(:response) + end + end + + # This represents a particular package that is distributed over + # various channels. + # e.g. glibc (aka libc6) is distributed by many, at various versions. + class Package + include Google::Apis::Core::Hashable + + # The various channels by which a package is distributed. + # Corresponds to the JSON property `distribution` + # @return [Array] + attr_accessor :distribution + + # The name of the package. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @distribution = args[:distribution] if args.key?(:distribution) + @name = args[:name] if args.key?(:name) + end + end + + # This message wraps a location affected by a vulnerability and its + # associated fix (if one is available). + class PackageIssue + include Google::Apis::Core::Hashable + + # The location of the vulnerability + # Corresponds to the JSON property `affectedLocation` + # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation] + attr_accessor :affected_location + + # The location of the vulnerability + # Corresponds to the JSON property `fixedLocation` + # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation] + attr_accessor :fixed_location + + # The severity (eg: distro assigned severity) for this vulnerability. + # Corresponds to the JSON property `severityName` + # @return [String] + attr_accessor :severity_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @affected_location = args[:affected_location] if args.key?(:affected_location) + @fixed_location = args[:fixed_location] if args.key?(:fixed_location) + @severity_name = args[:severity_name] if args.key?(:severity_name) + end + end + + # An attestation wrapper with a PGP-compatible signature. + # This message only supports `ATTACHED` signatures, where the payload that is + # signed is included alongside the signature itself in the same file. + class PgpSignedAttestation + include Google::Apis::Core::Hashable + + # Type (for example schema) of the attestation payload that was signed. + # The verifier must ensure that the provided type is one that the verifier + # supports, and that the attestation payload is a valid instantiation of that + # type (for example by validating a JSON schema). + # Corresponds to the JSON property `contentType` + # @return [String] + attr_accessor :content_type + + # The cryptographic fingerprint of the key used to generate the signature, + # as output by, e.g. `gpg --list-keys`. This should be the version 4, full + # 160-bit fingerprint, expressed as a 40 character hexadecimal string. See + # https://tools.ietf.org/html/rfc4880#section-12.2 for details. + # Implementations may choose to acknowledge "LONG", "SHORT", or other + # abbreviated key IDs, but only the full fingerprint is guaranteed to work. + # In gpg, the full fingerprint can be retrieved from the `fpr` field + # returned when calling --list-keys with --with-colons. For example: + # ``` + # gpg --with-colons --with-fingerprint --force-v4-certs \ + # --list-keys attester@example.com + # tru::1:1513631572:0:3:1:5 + # pub:...... + # fpr:::::::::24FF6481B76AC91E66A00AC657A93A81EF3AE6FB: + # ``` + # Above, the fingerprint is `24FF6481B76AC91E66A00AC657A93A81EF3AE6FB`. + # Corresponds to the JSON property `pgpKeyId` + # @return [String] + attr_accessor :pgp_key_id + + # The raw content of the signature, as output by GNU Privacy Guard (GPG) or + # equivalent. Since this message only supports attached signatures, the + # payload that was signed must be attached. While the signature format + # supported is dependent on the verification implementation, currently only + # ASCII-armored (`--armor` to gpg), non-clearsigned (`--sign` rather than + # `--clearsign` to gpg) are supported. Concretely, `gpg --sign --armor + # --output=signature.gpg payload.json` will create the signature content + # expected in this field in `signature.gpg` for the `payload.json` + # attestation payload. + # Corresponds to the JSON property `signature` + # @return [String] + attr_accessor :signature + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @content_type = args[:content_type] if args.key?(:content_type) + @pgp_key_id = args[:pgp_key_id] if args.key?(:pgp_key_id) + @signature = args[:signature] if args.key?(:signature) + end + end + + # Defines an Identity and Access Management (IAM) policy. It is used to + # specify access control policies for Cloud Platform resources. + # A `Policy` consists of a list of `bindings`. A `binding` binds a list of + # `members` to a `role`, where the members can be user accounts, Google groups, + # Google domains, and service accounts. A `role` is a named list of permissions + # defined by IAM. + # **JSON Example** + # ` + # "bindings": [ + # ` + # "role": "roles/owner", + # "members": [ + # "user:mike@example.com", + # "group:admins@example.com", + # "domain:google.com", + # "serviceAccount:my-other-app@appspot.gserviceaccount.com" + # ] + # `, + # ` + # "role": "roles/viewer", + # "members": ["user:sean@example.com"] + # ` + # ] + # ` + # **YAML Example** + # bindings: + # - members: + # - user:mike@example.com + # - group:admins@example.com + # - domain:google.com + # - serviceAccount:my-other-app@appspot.gserviceaccount.com + # role: roles/owner + # - members: + # - user:sean@example.com + # role: roles/viewer + # For a description of IAM and its features, see the + # [IAM developer's guide](https://cloud.google.com/iam/docs). + class Policy + include Google::Apis::Core::Hashable + + # Specifies cloud audit logging configuration for this policy. + # Corresponds to the JSON property `auditConfigs` + # @return [Array] + attr_accessor :audit_configs + + # Associates a list of `members` to a `role`. + # `bindings` with no members will result in an error. + # Corresponds to the JSON property `bindings` + # @return [Array] + attr_accessor :bindings + + # `etag` is used for optimistic concurrency control as a way to help + # prevent simultaneous updates of a policy from overwriting each other. + # It is strongly suggested that systems make use of the `etag` in the + # read-modify-write cycle to perform policy updates in order to avoid race + # conditions: An `etag` is returned in the response to `getIamPolicy`, and + # systems are expected to put that etag in the request to `setIamPolicy` to + # ensure that their change will be applied to the same version of the policy. + # If no `etag` is provided in the call to `setIamPolicy`, then the existing + # policy is overwritten blindly. + # Corresponds to the JSON property `etag` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :etag + + # Deprecated. + # Corresponds to the JSON property `version` + # @return [Fixnum] + attr_accessor :version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @audit_configs = args[:audit_configs] if args.key?(:audit_configs) + @bindings = args[:bindings] if args.key?(:bindings) + @etag = args[:etag] if args.key?(:etag) + @version = args[:version] if args.key?(:version) + end + end + + # Metadata for any related URL information + class RelatedUrl + include Google::Apis::Core::Hashable + + # Label to describe usage of the URL + # Corresponds to the JSON property `label` + # @return [String] + attr_accessor :label + + # Specific URL to associate with the note + # Corresponds to the JSON property `url` + # @return [String] + attr_accessor :url + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @label = args[:label] if args.key?(:label) + @url = args[:url] if args.key?(:url) + end + end + + # RepoSource describes the location of the source in a Google Cloud Source + # Repository. + class RepoSource + include Google::Apis::Core::Hashable + + # Name of the branch to build. + # Corresponds to the JSON property `branchName` + # @return [String] + attr_accessor :branch_name + + # Explicit commit SHA to build. + # Corresponds to the JSON property `commitSha` + # @return [String] + attr_accessor :commit_sha + + # ID of the project that owns the repo. + # Corresponds to the JSON property `projectId` + # @return [String] + attr_accessor :project_id + + # Name of the repo. + # Corresponds to the JSON property `repoName` + # @return [String] + attr_accessor :repo_name + + # Name of the tag to build. + # Corresponds to the JSON property `tagName` + # @return [String] + attr_accessor :tag_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @branch_name = args[:branch_name] if args.key?(:branch_name) + @commit_sha = args[:commit_sha] if args.key?(:commit_sha) + @project_id = args[:project_id] if args.key?(:project_id) + @repo_name = args[:repo_name] if args.key?(:repo_name) + @tag_name = args[:tag_name] if args.key?(:tag_name) + end + end + + # Resource is an entity that can have metadata. E.g., a Docker image. + class Resource + include Google::Apis::Core::Hashable + + # Container message for hash values. + # Corresponds to the JSON property `contentHash` + # @return [Google::Apis::ContaineranalysisV1alpha1::HashProp] + attr_accessor :content_hash + + # The name of the resource. E.g., the name of a Docker image - "Debian". + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The unique URI of the resource. E.g., + # "https://gcr.io/project/image@sha256:foo" for a Docker image. + # Corresponds to the JSON property `uri` + # @return [String] + attr_accessor :uri + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @content_hash = args[:content_hash] if args.key?(:content_hash) + @name = args[:name] if args.key?(:name) + @uri = args[:uri] if args.key?(:uri) + end + end + + # Indicates various scans and whether they are turned on or off. + class ScanConfig + include Google::Apis::Core::Hashable + + # Output only. The time this scan config was created. + # Corresponds to the JSON property `createTime` + # @return [String] + attr_accessor :create_time + + # Output only. A human-readable description of what the `ScanConfig` does. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Indicates whether the Scan is enabled. + # Corresponds to the JSON property `enabled` + # @return [Boolean] + attr_accessor :enabled + alias_method :enabled?, :enabled + + # Output only. The name of the ScanConfig in the form + # “projects/`project_id`/scanConfigs/`scan_config_id`". + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Output only. The time this scan config was last updated. + # Corresponds to the JSON property `updateTime` + # @return [String] + attr_accessor :update_time + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @create_time = args[:create_time] if args.key?(:create_time) + @description = args[:description] if args.key?(:description) + @enabled = args[:enabled] if args.key?(:enabled) + @name = args[:name] if args.key?(:name) + @update_time = args[:update_time] if args.key?(:update_time) + end + end + + # Request message for `SetIamPolicy` method. + class SetIamPolicyRequest + include Google::Apis::Core::Hashable + + # Defines an Identity and Access Management (IAM) policy. It is used to + # specify access control policies for Cloud Platform resources. + # A `Policy` consists of a list of `bindings`. A `binding` binds a list of + # `members` to a `role`, where the members can be user accounts, Google groups, + # Google domains, and service accounts. A `role` is a named list of permissions + # defined by IAM. + # **JSON Example** + # ` + # "bindings": [ + # ` + # "role": "roles/owner", + # "members": [ + # "user:mike@example.com", + # "group:admins@example.com", + # "domain:google.com", + # "serviceAccount:my-other-app@appspot.gserviceaccount.com" + # ] + # `, + # ` + # "role": "roles/viewer", + # "members": ["user:sean@example.com"] + # ` + # ] + # ` + # **YAML Example** + # bindings: + # - members: + # - user:mike@example.com + # - group:admins@example.com + # - domain:google.com + # - serviceAccount:my-other-app@appspot.gserviceaccount.com + # role: roles/owner + # - members: + # - user:sean@example.com + # role: roles/viewer + # For a description of IAM and its features, see the + # [IAM developer's guide](https://cloud.google.com/iam/docs). + # Corresponds to the JSON property `policy` + # @return [Google::Apis::ContaineranalysisV1alpha1::Policy] + attr_accessor :policy + + # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + # the fields in the mask will be modified. If no mask is provided, the + # following default mask is used: + # paths: "bindings, etag" + # This field is only used by Cloud IAM. + # Corresponds to the JSON property `updateMask` + # @return [String] + attr_accessor :update_mask + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @policy = args[:policy] if args.key?(:policy) + @update_mask = args[:update_mask] if args.key?(:update_mask) + end + end + + # The number of occurrences created for a specific severity. + class SeverityCount + include Google::Apis::Core::Hashable + + # The number of occurrences with the severity. + # Corresponds to the JSON property `count` + # @return [Fixnum] + attr_accessor :count + + # The severity of the occurrences. + # Corresponds to the JSON property `severity` + # @return [String] + attr_accessor :severity + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @count = args[:count] if args.key?(:count) + @severity = args[:severity] if args.key?(:severity) + end + end + + # Source describes the location of the source used for the build. + class Source + include Google::Apis::Core::Hashable + + # If provided, some of the source code used for the build may be found in + # these locations, in the case where the source repository had multiple + # remotes or submodules. This list will not include the context specified in + # the context field. + # Corresponds to the JSON property `additionalContexts` + # @return [Array] + attr_accessor :additional_contexts + + # StorageSource describes the location of the source in an archive file in + # Google Cloud Storage. + # Corresponds to the JSON property `artifactStorageSource` + # @return [Google::Apis::ContaineranalysisV1alpha1::StorageSource] + attr_accessor :artifact_storage_source + + # A SourceContext is a reference to a tree of files. A SourceContext together + # with a path point to a unique revision of a single file or directory. + # Corresponds to the JSON property `context` + # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1SourceContext] + attr_accessor :context + + # Hash(es) of the build source, which can be used to verify that the original + # source integrity was maintained in the build. + # The keys to this map are file paths used as build source and the values + # contain the hash values for those files. + # If the build source came in a single package such as a gzipped tarfile + # (.tar.gz), the FileHash will be for the single path to that file. + # Corresponds to the JSON property `fileHashes` + # @return [Hash] + attr_accessor :file_hashes + + # RepoSource describes the location of the source in a Google Cloud Source + # Repository. + # Corresponds to the JSON property `repoSource` + # @return [Google::Apis::ContaineranalysisV1alpha1::RepoSource] + attr_accessor :repo_source + + # StorageSource describes the location of the source in an archive file in + # Google Cloud Storage. + # Corresponds to the JSON property `storageSource` + # @return [Google::Apis::ContaineranalysisV1alpha1::StorageSource] + attr_accessor :storage_source + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @additional_contexts = args[:additional_contexts] if args.key?(:additional_contexts) + @artifact_storage_source = args[:artifact_storage_source] if args.key?(:artifact_storage_source) + @context = args[:context] if args.key?(:context) + @file_hashes = args[:file_hashes] if args.key?(:file_hashes) + @repo_source = args[:repo_source] if args.key?(:repo_source) + @storage_source = args[:storage_source] if args.key?(:storage_source) + end + end + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + class Status + include Google::Apis::Core::Hashable + + # The status code, which should be an enum value of google.rpc.Code. + # Corresponds to the JSON property `code` + # @return [Fixnum] + attr_accessor :code + + # A list of messages that carry the error details. There is a common set of + # message types for APIs to use. + # Corresponds to the JSON property `details` + # @return [Array>] + attr_accessor :details + + # 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. + # Corresponds to the JSON property `message` + # @return [String] + attr_accessor :message + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @code = args[:code] if args.key?(:code) + @details = args[:details] if args.key?(:details) + @message = args[:message] if args.key?(:message) + end + end + + # StorageSource describes the location of the source in an archive file in + # Google Cloud Storage. + class StorageSource + include Google::Apis::Core::Hashable + + # Google Cloud Storage bucket containing source (see [Bucket Name + # Requirements] + # (https://cloud.google.com/storage/docs/bucket-naming#requirements)). + # Corresponds to the JSON property `bucket` + # @return [String] + attr_accessor :bucket + + # Google Cloud Storage generation for the object. + # Corresponds to the JSON property `generation` + # @return [Fixnum] + attr_accessor :generation + + # Google Cloud Storage object containing source. + # Corresponds to the JSON property `object` + # @return [String] + attr_accessor :object + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @bucket = args[:bucket] if args.key?(:bucket) + @generation = args[:generation] if args.key?(:generation) + @object = args[:object] if args.key?(:object) + end + end + + # Request message for `TestIamPermissions` method. + class TestIamPermissionsRequest + include Google::Apis::Core::Hashable + + # The set of permissions to check for the `resource`. Permissions with + # wildcards (such as '*' or 'storage.*') are not allowed. For more + # information see + # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + # Corresponds to the JSON property `permissions` + # @return [Array] + attr_accessor :permissions + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @permissions = args[:permissions] if args.key?(:permissions) + end + end + + # Response message for `TestIamPermissions` method. + class TestIamPermissionsResponse + include Google::Apis::Core::Hashable + + # A subset of `TestPermissionsRequest.permissions` that the caller is + # allowed. + # Corresponds to the JSON property `permissions` + # @return [Array] + attr_accessor :permissions + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @permissions = args[:permissions] if args.key?(:permissions) + end + end + + # Request for updating an existing operation + class UpdateOperationRequest + include Google::Apis::Core::Hashable + + # This resource represents a long-running operation that is the result of a + # network API call. + # Corresponds to the JSON property `operation` + # @return [Google::Apis::ContaineranalysisV1alpha1::Operation] + attr_accessor :operation + + # The fields to update. + # Corresponds to the JSON property `updateMask` + # @return [String] + attr_accessor :update_mask + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @operation = args[:operation] if args.key?(:operation) + @update_mask = args[:update_mask] if args.key?(:update_mask) + end + end + + # Version contains structured information about the version of the package. + # For a discussion of this in Debian/Ubuntu: + # http://serverfault.com/questions/604541/debian-packages-version-convention + # For a discussion of this in Redhat/Fedora/Centos: + # http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/ + class Version + include Google::Apis::Core::Hashable + + # Used to correct mistakes in the version numbering scheme. + # Corresponds to the JSON property `epoch` + # @return [Fixnum] + attr_accessor :epoch + + # Distinguish between sentinel MIN/MAX versions and normal versions. + # If kind is not NORMAL, then the other fields are ignored. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # The main part of the version name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The iteration of the package build from the above version. + # Corresponds to the JSON property `revision` + # @return [String] + attr_accessor :revision + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @epoch = args[:epoch] if args.key?(:epoch) + @kind = args[:kind] if args.key?(:kind) + @name = args[:name] if args.key?(:name) + @revision = args[:revision] if args.key?(:revision) + end + end + + # Used by Occurrence to point to where the vulnerability exists and how + # to fix it. + class VulnerabilityDetails + include Google::Apis::Core::Hashable + + # Output only. The CVSS score of this vulnerability. CVSS score is on a + # scale of 0-10 where 0 indicates low severity and 10 indicates high + # severity. + # Corresponds to the JSON property `cvssScore` + # @return [Float] + attr_accessor :cvss_score + + # The set of affected locations and their fixes (if available) within + # the associated resource. + # Corresponds to the JSON property `packageIssue` + # @return [Array] + attr_accessor :package_issue + + # Output only. The note provider assigned Severity of the vulnerability. + # Corresponds to the JSON property `severity` + # @return [String] + attr_accessor :severity + + # The type of package; whether native or non native(ruby gems, + # node.js packages etc) + # Corresponds to the JSON property `type` + # @return [String] + attr_accessor :type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cvss_score = args[:cvss_score] if args.key?(:cvss_score) + @package_issue = args[:package_issue] if args.key?(:package_issue) + @severity = args[:severity] if args.key?(:severity) + @type = args[:type] if args.key?(:type) + end + end + + # The location of the vulnerability + class VulnerabilityLocation + include Google::Apis::Core::Hashable + + # The cpe_uri in [cpe format] (https://cpe.mitre.org/specification/) + # format. Examples include distro or storage location for vulnerable jar. + # This field can be used as a filter in list requests. + # Corresponds to the JSON property `cpeUri` + # @return [String] + attr_accessor :cpe_uri + + # The package being described. + # Corresponds to the JSON property `package` + # @return [String] + attr_accessor :package + + # Version contains structured information about the version of the package. + # For a discussion of this in Debian/Ubuntu: + # http://serverfault.com/questions/604541/debian-packages-version-convention + # For a discussion of this in Redhat/Fedora/Centos: + # http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/ + # Corresponds to the JSON property `version` + # @return [Google::Apis::ContaineranalysisV1alpha1::Version] + attr_accessor :version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri) + @package = args[:package] if args.key?(:package) + @version = args[:version] if args.key?(:version) + end + end + + # VulnerabilityType provides metadata about a security vulnerability. + class VulnerabilityType + include Google::Apis::Core::Hashable + + # The CVSS score for this Vulnerability. + # Corresponds to the JSON property `cvssScore` + # @return [Float] + attr_accessor :cvss_score + + # All information about the package to specifically identify this + # vulnerability. One entry per (version range and cpe_uri) the + # package vulnerability has manifested in. + # Corresponds to the JSON property `details` + # @return [Array] + attr_accessor :details + + # Note provider assigned impact of the vulnerability + # Corresponds to the JSON property `severity` + # @return [String] + attr_accessor :severity + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cvss_score = args[:cvss_score] if args.key?(:cvss_score) + @details = args[:details] if args.key?(:details) + @severity = args[:severity] if args.key?(:severity) + end + end + end + end +end diff --git a/generated/google/apis/containeranalysis_v1alpha1/representations.rb b/generated/google/apis/containeranalysis_v1alpha1/representations.rb new file mode 100644 index 000000000..f0ea1ca6d --- /dev/null +++ b/generated/google/apis/containeranalysis_v1alpha1/representations.rb @@ -0,0 +1,1106 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module ContaineranalysisV1alpha1 + + class Artifact + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Attestation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AttestationAuthority + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AttestationAuthorityHint + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuditConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuditLogConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Basis + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Binding + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildProvenance + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildSignature + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildType + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Command + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class CreateOperationRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Deployable + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Deployment + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Derived + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Detail + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Discovered + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Discovery + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Distribution + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Empty + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Expr + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class FileHashes + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Fingerprint + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GetIamPolicyRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GetVulnzOccurrencesSummaryResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsContaineranalysisV1alpha1AliasContext + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContext + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContext + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsContaineranalysisV1alpha1GitSourceContext + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsContaineranalysisV1alpha1ProjectRepoId + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsContaineranalysisV1alpha1RepoId + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsContaineranalysisV1alpha1SourceContext + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class HashProp + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Installation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Layer + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListNoteOccurrencesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListNotesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListOccurrencesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListScanConfigsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Location + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Note + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Occurrence + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Operation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Package + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class PackageIssue + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class PgpSignedAttestation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Policy + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class RelatedUrl + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class RepoSource + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Resource + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ScanConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SetIamPolicyRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SeverityCount + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Source + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Status + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class StorageSource + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class TestIamPermissionsRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class TestIamPermissionsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class UpdateOperationRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Version + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class VulnerabilityDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class VulnerabilityLocation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class VulnerabilityType + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Artifact + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :checksum, as: 'checksum' + property :id, as: 'id' + property :name, as: 'name' + collection :names, as: 'names' + end + end + + class Attestation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :pgp_signed_attestation, as: 'pgpSignedAttestation', class: Google::Apis::ContaineranalysisV1alpha1::PgpSignedAttestation, decorator: Google::Apis::ContaineranalysisV1alpha1::PgpSignedAttestation::Representation + + end + end + + class AttestationAuthority + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :hint, as: 'hint', class: Google::Apis::ContaineranalysisV1alpha1::AttestationAuthorityHint, decorator: Google::Apis::ContaineranalysisV1alpha1::AttestationAuthorityHint::Representation + + end + end + + class AttestationAuthorityHint + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :human_readable_name, as: 'humanReadableName' + end + end + + class AuditConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :audit_log_configs, as: 'auditLogConfigs', class: Google::Apis::ContaineranalysisV1alpha1::AuditLogConfig, decorator: Google::Apis::ContaineranalysisV1alpha1::AuditLogConfig::Representation + + property :service, as: 'service' + end + end + + class AuditLogConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :exempted_members, as: 'exemptedMembers' + property :log_type, as: 'logType' + end + end + + class Basis + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :fingerprint, as: 'fingerprint', class: Google::Apis::ContaineranalysisV1alpha1::Fingerprint, decorator: Google::Apis::ContaineranalysisV1alpha1::Fingerprint::Representation + + property :resource_url, as: 'resourceUrl' + end + end + + class Binding + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :condition, as: 'condition', class: Google::Apis::ContaineranalysisV1alpha1::Expr, decorator: Google::Apis::ContaineranalysisV1alpha1::Expr::Representation + + collection :members, as: 'members' + property :role, as: 'role' + end + end + + class BuildDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :provenance, as: 'provenance', class: Google::Apis::ContaineranalysisV1alpha1::BuildProvenance, decorator: Google::Apis::ContaineranalysisV1alpha1::BuildProvenance::Representation + + property :provenance_bytes, as: 'provenanceBytes' + end + end + + class BuildProvenance + # @private + class Representation < Google::Apis::Core::JsonRepresentation + hash :build_options, as: 'buildOptions' + property :builder_version, as: 'builderVersion' + collection :built_artifacts, as: 'builtArtifacts', class: Google::Apis::ContaineranalysisV1alpha1::Artifact, decorator: Google::Apis::ContaineranalysisV1alpha1::Artifact::Representation + + collection :commands, as: 'commands', class: Google::Apis::ContaineranalysisV1alpha1::Command, decorator: Google::Apis::ContaineranalysisV1alpha1::Command::Representation + + property :create_time, as: 'createTime' + property :creator, as: 'creator' + property :finish_time, as: 'finishTime' + property :id, as: 'id' + property :logs_bucket, as: 'logsBucket' + property :project_id, as: 'projectId' + property :source_provenance, as: 'sourceProvenance', class: Google::Apis::ContaineranalysisV1alpha1::Source, decorator: Google::Apis::ContaineranalysisV1alpha1::Source::Representation + + property :start_time, as: 'startTime' + property :trigger_id, as: 'triggerId' + end + end + + class BuildSignature + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :key_id, as: 'keyId' + property :key_type, as: 'keyType' + property :public_key, as: 'publicKey' + property :signature, as: 'signature' + end + end + + class BuildType + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :builder_version, as: 'builderVersion' + property :signature, as: 'signature', class: Google::Apis::ContaineranalysisV1alpha1::BuildSignature, decorator: Google::Apis::ContaineranalysisV1alpha1::BuildSignature::Representation + + end + end + + class Command + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :args, as: 'args' + property :dir, as: 'dir' + collection :env, as: 'env' + property :id, as: 'id' + property :name, as: 'name' + collection :wait_for, as: 'waitFor' + end + end + + class CreateOperationRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :operation, as: 'operation', class: Google::Apis::ContaineranalysisV1alpha1::Operation, decorator: Google::Apis::ContaineranalysisV1alpha1::Operation::Representation + + property :operation_id, as: 'operationId' + end + end + + class Deployable + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :resource_uri, as: 'resourceUri' + end + end + + class Deployment + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :address, as: 'address' + property :config, as: 'config' + property :deploy_time, as: 'deployTime' + property :platform, as: 'platform' + collection :resource_uri, as: 'resourceUri' + property :undeploy_time, as: 'undeployTime' + property :user_email, as: 'userEmail' + end + end + + class Derived + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :base_resource_url, as: 'baseResourceUrl' + property :distance, as: 'distance' + property :fingerprint, as: 'fingerprint', class: Google::Apis::ContaineranalysisV1alpha1::Fingerprint, decorator: Google::Apis::ContaineranalysisV1alpha1::Fingerprint::Representation + + collection :layer_info, as: 'layerInfo', class: Google::Apis::ContaineranalysisV1alpha1::Layer, decorator: Google::Apis::ContaineranalysisV1alpha1::Layer::Representation + + end + end + + class Detail + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cpe_uri, as: 'cpeUri' + property :description, as: 'description' + property :fixed_location, as: 'fixedLocation', class: Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation, decorator: Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation::Representation + + property :is_obsolete, as: 'isObsolete' + property :max_affected_version, as: 'maxAffectedVersion', class: Google::Apis::ContaineranalysisV1alpha1::Version, decorator: Google::Apis::ContaineranalysisV1alpha1::Version::Representation + + property :min_affected_version, as: 'minAffectedVersion', class: Google::Apis::ContaineranalysisV1alpha1::Version, decorator: Google::Apis::ContaineranalysisV1alpha1::Version::Representation + + property :package, as: 'package' + property :package_type, as: 'packageType' + property :severity_name, as: 'severityName' + end + end + + class Discovered + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :analysis_status, as: 'analysisStatus' + property :analysis_status_error, as: 'analysisStatusError', class: Google::Apis::ContaineranalysisV1alpha1::Status, decorator: Google::Apis::ContaineranalysisV1alpha1::Status::Representation + + property :continuous_analysis, as: 'continuousAnalysis' + property :operation, as: 'operation', class: Google::Apis::ContaineranalysisV1alpha1::Operation, decorator: Google::Apis::ContaineranalysisV1alpha1::Operation::Representation + + end + end + + class Discovery + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :analysis_kind, as: 'analysisKind' + end + end + + class Distribution + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :architecture, as: 'architecture' + property :cpe_uri, as: 'cpeUri' + property :description, as: 'description' + property :latest_version, as: 'latestVersion', class: Google::Apis::ContaineranalysisV1alpha1::Version, decorator: Google::Apis::ContaineranalysisV1alpha1::Version::Representation + + property :maintainer, as: 'maintainer' + property :url, as: 'url' + end + end + + class Empty + # @private + class Representation < Google::Apis::Core::JsonRepresentation + end + end + + class Expr + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :expression, as: 'expression' + property :location, as: 'location' + property :title, as: 'title' + end + end + + class FileHashes + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :file_hash, as: 'fileHash', class: Google::Apis::ContaineranalysisV1alpha1::HashProp, decorator: Google::Apis::ContaineranalysisV1alpha1::HashProp::Representation + + end + end + + class Fingerprint + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :v1_name, as: 'v1Name' + collection :v2_blob, as: 'v2Blob' + property :v2_name, as: 'v2Name' + end + end + + class GetIamPolicyRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + end + end + + class GetVulnzOccurrencesSummaryResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :counts, as: 'counts', class: Google::Apis::ContaineranalysisV1alpha1::SeverityCount, decorator: Google::Apis::ContaineranalysisV1alpha1::SeverityCount::Representation + + end + end + + class GoogleDevtoolsContaineranalysisV1alpha1AliasContext + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :kind, as: 'kind' + property :name, as: 'name' + end + end + + class GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContext + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :alias_context, as: 'aliasContext', class: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1AliasContext, decorator: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1AliasContext::Representation + + property :repo_id, as: 'repoId', class: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1RepoId, decorator: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1RepoId::Representation + + property :revision_id, as: 'revisionId' + end + end + + class GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContext + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :alias_context, as: 'aliasContext', class: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1AliasContext, decorator: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1AliasContext::Representation + + property :gerrit_project, as: 'gerritProject' + property :host_uri, as: 'hostUri' + property :revision_id, as: 'revisionId' + end + end + + class GoogleDevtoolsContaineranalysisV1alpha1GitSourceContext + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :revision_id, as: 'revisionId' + property :url, as: 'url' + end + end + + class GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :create_time, as: 'createTime' + property :end_time, as: 'endTime' + end + end + + class GoogleDevtoolsContaineranalysisV1alpha1ProjectRepoId + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :project_id, as: 'projectId' + property :repo_name, as: 'repoName' + end + end + + class GoogleDevtoolsContaineranalysisV1alpha1RepoId + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :project_repo_id, as: 'projectRepoId', class: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1ProjectRepoId, decorator: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1ProjectRepoId::Representation + + property :uid, as: 'uid' + end + end + + class GoogleDevtoolsContaineranalysisV1alpha1SourceContext + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cloud_repo, as: 'cloudRepo', class: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContext, decorator: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContext::Representation + + property :gerrit, as: 'gerrit', class: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContext, decorator: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContext::Representation + + property :git, as: 'git', class: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1GitSourceContext, decorator: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1GitSourceContext::Representation + + hash :labels, as: 'labels' + end + end + + class HashProp + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :type, as: 'type' + property :value, :base64 => true, as: 'value' + end + end + + class Installation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :location, as: 'location', class: Google::Apis::ContaineranalysisV1alpha1::Location, decorator: Google::Apis::ContaineranalysisV1alpha1::Location::Representation + + property :name, as: 'name' + end + end + + class Layer + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :arguments, as: 'arguments' + property :directive, as: 'directive' + end + end + + class ListNoteOccurrencesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :next_page_token, as: 'nextPageToken' + collection :occurrences, as: 'occurrences', class: Google::Apis::ContaineranalysisV1alpha1::Occurrence, decorator: Google::Apis::ContaineranalysisV1alpha1::Occurrence::Representation + + end + end + + class ListNotesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :next_page_token, as: 'nextPageToken' + collection :notes, as: 'notes', class: Google::Apis::ContaineranalysisV1alpha1::Note, decorator: Google::Apis::ContaineranalysisV1alpha1::Note::Representation + + end + end + + class ListOccurrencesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :next_page_token, as: 'nextPageToken' + collection :occurrences, as: 'occurrences', class: Google::Apis::ContaineranalysisV1alpha1::Occurrence, decorator: Google::Apis::ContaineranalysisV1alpha1::Occurrence::Representation + + end + end + + class ListScanConfigsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :next_page_token, as: 'nextPageToken' + collection :scan_configs, as: 'scanConfigs', class: Google::Apis::ContaineranalysisV1alpha1::ScanConfig, decorator: Google::Apis::ContaineranalysisV1alpha1::ScanConfig::Representation + + end + end + + class Location + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cpe_uri, as: 'cpeUri' + property :path, as: 'path' + property :version, as: 'version', class: Google::Apis::ContaineranalysisV1alpha1::Version, decorator: Google::Apis::ContaineranalysisV1alpha1::Version::Representation + + end + end + + class Note + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :attestation_authority, as: 'attestationAuthority', class: Google::Apis::ContaineranalysisV1alpha1::AttestationAuthority, decorator: Google::Apis::ContaineranalysisV1alpha1::AttestationAuthority::Representation + + property :base_image, as: 'baseImage', class: Google::Apis::ContaineranalysisV1alpha1::Basis, decorator: Google::Apis::ContaineranalysisV1alpha1::Basis::Representation + + property :build_type, as: 'buildType', class: Google::Apis::ContaineranalysisV1alpha1::BuildType, decorator: Google::Apis::ContaineranalysisV1alpha1::BuildType::Representation + + property :create_time, as: 'createTime' + property :deployable, as: 'deployable', class: Google::Apis::ContaineranalysisV1alpha1::Deployable, decorator: Google::Apis::ContaineranalysisV1alpha1::Deployable::Representation + + property :discovery, as: 'discovery', class: Google::Apis::ContaineranalysisV1alpha1::Discovery, decorator: Google::Apis::ContaineranalysisV1alpha1::Discovery::Representation + + property :expiration_time, as: 'expirationTime' + property :kind, as: 'kind' + property :long_description, as: 'longDescription' + property :name, as: 'name' + property :package, as: 'package', class: Google::Apis::ContaineranalysisV1alpha1::Package, decorator: Google::Apis::ContaineranalysisV1alpha1::Package::Representation + + collection :related_url, as: 'relatedUrl', class: Google::Apis::ContaineranalysisV1alpha1::RelatedUrl, decorator: Google::Apis::ContaineranalysisV1alpha1::RelatedUrl::Representation + + property :short_description, as: 'shortDescription' + property :update_time, as: 'updateTime' + property :vulnerability_type, as: 'vulnerabilityType', class: Google::Apis::ContaineranalysisV1alpha1::VulnerabilityType, decorator: Google::Apis::ContaineranalysisV1alpha1::VulnerabilityType::Representation + + end + end + + class Occurrence + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :attestation, as: 'attestation', class: Google::Apis::ContaineranalysisV1alpha1::Attestation, decorator: Google::Apis::ContaineranalysisV1alpha1::Attestation::Representation + + property :build_details, as: 'buildDetails', class: Google::Apis::ContaineranalysisV1alpha1::BuildDetails, decorator: Google::Apis::ContaineranalysisV1alpha1::BuildDetails::Representation + + property :create_time, as: 'createTime' + property :deployment, as: 'deployment', class: Google::Apis::ContaineranalysisV1alpha1::Deployment, decorator: Google::Apis::ContaineranalysisV1alpha1::Deployment::Representation + + property :derived_image, as: 'derivedImage', class: Google::Apis::ContaineranalysisV1alpha1::Derived, decorator: Google::Apis::ContaineranalysisV1alpha1::Derived::Representation + + property :discovered, as: 'discovered', class: Google::Apis::ContaineranalysisV1alpha1::Discovered, decorator: Google::Apis::ContaineranalysisV1alpha1::Discovered::Representation + + property :installation, as: 'installation', class: Google::Apis::ContaineranalysisV1alpha1::Installation, decorator: Google::Apis::ContaineranalysisV1alpha1::Installation::Representation + + property :kind, as: 'kind' + property :name, as: 'name' + property :note_name, as: 'noteName' + property :remediation, as: 'remediation' + property :resource, as: 'resource', class: Google::Apis::ContaineranalysisV1alpha1::Resource, decorator: Google::Apis::ContaineranalysisV1alpha1::Resource::Representation + + property :resource_url, as: 'resourceUrl' + property :update_time, as: 'updateTime' + property :vulnerability_details, as: 'vulnerabilityDetails', class: Google::Apis::ContaineranalysisV1alpha1::VulnerabilityDetails, decorator: Google::Apis::ContaineranalysisV1alpha1::VulnerabilityDetails::Representation + + end + end + + class Operation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :done, as: 'done' + property :error, as: 'error', class: Google::Apis::ContaineranalysisV1alpha1::Status, decorator: Google::Apis::ContaineranalysisV1alpha1::Status::Representation + + hash :metadata, as: 'metadata' + property :name, as: 'name' + hash :response, as: 'response' + end + end + + class Package + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :distribution, as: 'distribution', class: Google::Apis::ContaineranalysisV1alpha1::Distribution, decorator: Google::Apis::ContaineranalysisV1alpha1::Distribution::Representation + + property :name, as: 'name' + end + end + + class PackageIssue + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :affected_location, as: 'affectedLocation', class: Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation, decorator: Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation::Representation + + property :fixed_location, as: 'fixedLocation', class: Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation, decorator: Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation::Representation + + property :severity_name, as: 'severityName' + end + end + + class PgpSignedAttestation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :content_type, as: 'contentType' + property :pgp_key_id, as: 'pgpKeyId' + property :signature, as: 'signature' + end + end + + class Policy + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :audit_configs, as: 'auditConfigs', class: Google::Apis::ContaineranalysisV1alpha1::AuditConfig, decorator: Google::Apis::ContaineranalysisV1alpha1::AuditConfig::Representation + + collection :bindings, as: 'bindings', class: Google::Apis::ContaineranalysisV1alpha1::Binding, decorator: Google::Apis::ContaineranalysisV1alpha1::Binding::Representation + + property :etag, :base64 => true, as: 'etag' + property :version, as: 'version' + end + end + + class RelatedUrl + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :label, as: 'label' + property :url, as: 'url' + end + end + + class RepoSource + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :branch_name, as: 'branchName' + property :commit_sha, as: 'commitSha' + property :project_id, as: 'projectId' + property :repo_name, as: 'repoName' + property :tag_name, as: 'tagName' + end + end + + class Resource + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :content_hash, as: 'contentHash', class: Google::Apis::ContaineranalysisV1alpha1::HashProp, decorator: Google::Apis::ContaineranalysisV1alpha1::HashProp::Representation + + property :name, as: 'name' + property :uri, as: 'uri' + end + end + + class ScanConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :create_time, as: 'createTime' + property :description, as: 'description' + property :enabled, as: 'enabled' + property :name, as: 'name' + property :update_time, as: 'updateTime' + end + end + + class SetIamPolicyRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :policy, as: 'policy', class: Google::Apis::ContaineranalysisV1alpha1::Policy, decorator: Google::Apis::ContaineranalysisV1alpha1::Policy::Representation + + property :update_mask, as: 'updateMask' + end + end + + class SeverityCount + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :count, :numeric_string => true, as: 'count' + property :severity, as: 'severity' + end + end + + class Source + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :additional_contexts, as: 'additionalContexts', class: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1SourceContext, decorator: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1SourceContext::Representation + + property :artifact_storage_source, as: 'artifactStorageSource', class: Google::Apis::ContaineranalysisV1alpha1::StorageSource, decorator: Google::Apis::ContaineranalysisV1alpha1::StorageSource::Representation + + property :context, as: 'context', class: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1SourceContext, decorator: Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1SourceContext::Representation + + hash :file_hashes, as: 'fileHashes', class: Google::Apis::ContaineranalysisV1alpha1::FileHashes, decorator: Google::Apis::ContaineranalysisV1alpha1::FileHashes::Representation + + property :repo_source, as: 'repoSource', class: Google::Apis::ContaineranalysisV1alpha1::RepoSource, decorator: Google::Apis::ContaineranalysisV1alpha1::RepoSource::Representation + + property :storage_source, as: 'storageSource', class: Google::Apis::ContaineranalysisV1alpha1::StorageSource, decorator: Google::Apis::ContaineranalysisV1alpha1::StorageSource::Representation + + end + end + + class Status + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :code, as: 'code' + collection :details, as: 'details' + property :message, as: 'message' + end + end + + class StorageSource + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :bucket, as: 'bucket' + property :generation, :numeric_string => true, as: 'generation' + property :object, as: 'object' + end + end + + class TestIamPermissionsRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :permissions, as: 'permissions' + end + end + + class TestIamPermissionsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :permissions, as: 'permissions' + end + end + + class UpdateOperationRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :operation, as: 'operation', class: Google::Apis::ContaineranalysisV1alpha1::Operation, decorator: Google::Apis::ContaineranalysisV1alpha1::Operation::Representation + + property :update_mask, as: 'updateMask' + end + end + + class Version + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :epoch, as: 'epoch' + property :kind, as: 'kind' + property :name, as: 'name' + property :revision, as: 'revision' + end + end + + class VulnerabilityDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cvss_score, as: 'cvssScore' + collection :package_issue, as: 'packageIssue', class: Google::Apis::ContaineranalysisV1alpha1::PackageIssue, decorator: Google::Apis::ContaineranalysisV1alpha1::PackageIssue::Representation + + property :severity, as: 'severity' + property :type, as: 'type' + end + end + + class VulnerabilityLocation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cpe_uri, as: 'cpeUri' + property :package, as: 'package' + property :version, as: 'version', class: Google::Apis::ContaineranalysisV1alpha1::Version, decorator: Google::Apis::ContaineranalysisV1alpha1::Version::Representation + + end + end + + class VulnerabilityType + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cvss_score, as: 'cvssScore' + collection :details, as: 'details', class: Google::Apis::ContaineranalysisV1alpha1::Detail, decorator: Google::Apis::ContaineranalysisV1alpha1::Detail::Representation + + property :severity, as: 'severity' + end + end + end + end +end diff --git a/generated/google/apis/containeranalysis_v1alpha1/service.rb b/generated/google/apis/containeranalysis_v1alpha1/service.rb new file mode 100644 index 000000000..b5d519690 --- /dev/null +++ b/generated/google/apis/containeranalysis_v1alpha1/service.rb @@ -0,0 +1,1329 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module ContaineranalysisV1alpha1 + # Container Analysis API + # + # An implementation of the Grafeas API, which stores, and enables querying and + # retrieval of critical metadata about all of your software artifacts. + # + # @example + # require 'google/apis/containeranalysis_v1alpha1' + # + # Containeranalysis = Google::Apis::ContaineranalysisV1alpha1 # Alias the module + # service = Containeranalysis::ContainerAnalysisService.new + # + # @see https://cloud.google.com/container-analysis/api/reference/rest/ + class ContainerAnalysisService < Google::Apis::Core::BaseService + # @return [String] + # 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. + attr_accessor :key + + # @return [String] + # 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. + attr_accessor :quota_user + + def initialize + super('https://containeranalysis.googleapis.com/', '') + @batch_path = 'batch' + end + + # Creates a new `Note`. + # @param [String] parent + # This field contains the project Id for example: + # "projects/`project_id` + # @param [Google::Apis::ContaineranalysisV1alpha1::Note] note_object + # @param [String] name + # The name of the project. + # Should be of the form "providers/`provider_id`". + # @Deprecated + # @param [String] note_id + # The ID to use for this note. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Note] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Note] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_project_note(parent, note_object = nil, name: nil, note_id: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha1/{+parent}/notes', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::Note::Representation + command.request_object = note_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Note::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Note + command.params['parent'] = parent unless parent.nil? + command.query['name'] = name unless name.nil? + command.query['noteId'] = note_id unless note_id.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Deletes the given `Note` from the system. + # @param [String] name + # The name of the note in the form of + # "providers/`provider_id`/notes/`NOTE_ID`" + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Empty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Empty] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def delete_project_note(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:delete, 'v1alpha1/{+name}', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Empty::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Empty + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Returns the requested `Note`. + # @param [String] name + # The name of the note in the form of + # "providers/`provider_id`/notes/`NOTE_ID`" + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Note] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Note] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_note(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha1/{+name}', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Note::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Note + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the access control policy for a note or an `Occurrence` resource. + # Requires `containeranalysis.notes.setIamPolicy` or + # `containeranalysis.occurrences.setIamPolicy` permission if the resource is + # a note or occurrence, respectively. + # Attempting to call this method on a resource without the required + # permission will result in a `PERMISSION_DENIED` error. Attempting to call + # this method on a non-existent resource will result in a `NOT_FOUND` error + # if the user has list permission on the project, or a `PERMISSION_DENIED` + # error otherwise. The resource takes the following formats: + # `projects/`PROJECT_ID`/occurrences/`OCCURRENCE_ID`` for occurrences and + # projects/`PROJECT_ID`/notes/`NOTE_ID` for notes + # @param [String] resource + # REQUIRED: The resource for which the policy is being requested. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1alpha1::GetIamPolicyRequest] get_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_note_iam_policy(resource, get_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha1/{+resource}:getIamPolicy', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::GetIamPolicyRequest::Representation + command.request_object = get_iam_policy_request_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Policy::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists all `Notes` for a given project. + # @param [String] parent + # This field contains the project Id for example: "projects/`PROJECT_ID`". + # @param [String] filter + # The filter expression. + # @param [String] name + # The name field will contain the project Id for example: + # "providers/`provider_id` + # @Deprecated + # @param [Fixnum] page_size + # Number of notes to return in the list. + # @param [String] page_token + # Token to provide to skip to a particular spot in the list. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::ListNotesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::ListNotesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_notes(parent, filter: nil, name: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha1/{+parent}/notes', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::ListNotesResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::ListNotesResponse + command.params['parent'] = parent unless parent.nil? + command.query['filter'] = filter unless filter.nil? + command.query['name'] = name unless name.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Updates an existing `Note`. + # @param [String] name + # The name of the note. + # Should be of the form "projects/`provider_id`/notes/`note_id`". + # @param [Google::Apis::ContaineranalysisV1alpha1::Note] note_object + # @param [String] update_mask + # The fields to update. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Note] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Note] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def patch_project_note(name, note_object = nil, update_mask: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:patch, 'v1alpha1/{+name}', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::Note::Representation + command.request_object = note_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Note::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Note + command.params['name'] = name unless name.nil? + command.query['updateMask'] = update_mask unless update_mask.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Sets the access control policy on the specified `Note` or `Occurrence`. + # Requires `containeranalysis.notes.setIamPolicy` or + # `containeranalysis.occurrences.setIamPolicy` permission if the resource is + # a `Note` or an `Occurrence`, respectively. + # Attempting to call this method without these permissions will result in a ` + # `PERMISSION_DENIED` error. + # Attempting to call this method on a non-existent resource will result in a + # `NOT_FOUND` error if the user has `containeranalysis.notes.list` permission + # on a `Note` or `containeranalysis.occurrences.list` on an `Occurrence`, or + # a `PERMISSION_DENIED` error otherwise. The resource takes the following + # formats: `projects/`projectid`/occurrences/`occurrenceid`` for occurrences + # and projects/`projectid`/notes/`noteid` for notes + # @param [String] resource + # REQUIRED: The resource for which the policy is being specified. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1alpha1::SetIamPolicyRequest] set_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def set_project_note_iam_policy(resource, set_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha1/{+resource}:setIamPolicy', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::SetIamPolicyRequest::Representation + command.request_object = set_iam_policy_request_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Policy::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Returns the permissions that a caller has on the specified note or + # occurrence resource. Requires list permission on the project (for example, + # "storage.objects.list" on the containing bucket for testing permission of + # an object). Attempting to call this method on a non-existent resource will + # result in a `NOT_FOUND` error if the user has list permission on the + # project, or a `PERMISSION_DENIED` error otherwise. The resource takes the + # following formats: `projects/`PROJECT_ID`/occurrences/`OCCURRENCE_ID`` for + # `Occurrences` and `projects/`PROJECT_ID`/notes/`NOTE_ID`` for `Notes` + # @param [String] resource + # REQUIRED: The resource for which the policy detail is being requested. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsRequest] test_iam_permissions_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def test_project_note_iam_permissions(resource, test_iam_permissions_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha1/{+resource}:testIamPermissions', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsRequest::Representation + command.request_object = test_iam_permissions_request_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsResponse + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists `Occurrences` referencing the specified `Note`. Use this method to + # get all occurrences referencing your `Note` across all your customer + # projects. + # @param [String] name + # The name field will contain the note name for example: + # "provider/`provider_id`/notes/`note_id`" + # @param [String] filter + # The filter expression. + # @param [Fixnum] page_size + # Number of notes to return in the list. + # @param [String] page_token + # Token to provide to skip to a particular spot in the list. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::ListNoteOccurrencesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::ListNoteOccurrencesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_note_occurrences(name, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha1/{+name}/occurrences', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::ListNoteOccurrencesResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::ListNoteOccurrencesResponse + command.params['name'] = name unless name.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Creates a new `Occurrence`. Use this method to create `Occurrences` + # for a resource. + # @param [String] parent + # This field contains the project Id for example: "projects/`project_id`" + # @param [Google::Apis::ContaineranalysisV1alpha1::Occurrence] occurrence_object + # @param [String] name + # The name of the project. Should be of the form "projects/`project_id`". + # @Deprecated + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Occurrence] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Occurrence] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_project_occurrence(parent, occurrence_object = nil, name: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha1/{+parent}/occurrences', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::Occurrence::Representation + command.request_object = occurrence_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Occurrence::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Occurrence + command.params['parent'] = parent unless parent.nil? + command.query['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Deletes the given `Occurrence` from the system. Use this when + # an `Occurrence` is no longer applicable for the given resource. + # @param [String] name + # The name of the occurrence in the form of + # "projects/`project_id`/occurrences/`OCCURRENCE_ID`" + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Empty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Empty] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def delete_project_occurrence(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:delete, 'v1alpha1/{+name}', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Empty::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Empty + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Returns the requested `Occurrence`. + # @param [String] name + # The name of the occurrence of the form + # "projects/`project_id`/occurrences/`OCCURRENCE_ID`" + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Occurrence] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Occurrence] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_occurrence(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha1/{+name}', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Occurrence::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Occurrence + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the access control policy for a note or an `Occurrence` resource. + # Requires `containeranalysis.notes.setIamPolicy` or + # `containeranalysis.occurrences.setIamPolicy` permission if the resource is + # a note or occurrence, respectively. + # Attempting to call this method on a resource without the required + # permission will result in a `PERMISSION_DENIED` error. Attempting to call + # this method on a non-existent resource will result in a `NOT_FOUND` error + # if the user has list permission on the project, or a `PERMISSION_DENIED` + # error otherwise. The resource takes the following formats: + # `projects/`PROJECT_ID`/occurrences/`OCCURRENCE_ID`` for occurrences and + # projects/`PROJECT_ID`/notes/`NOTE_ID` for notes + # @param [String] resource + # REQUIRED: The resource for which the policy is being requested. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1alpha1::GetIamPolicyRequest] get_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_occurrence_iam_policy(resource, get_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha1/{+resource}:getIamPolicy', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::GetIamPolicyRequest::Representation + command.request_object = get_iam_policy_request_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Policy::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the `Note` attached to the given `Occurrence`. + # @param [String] name + # The name of the occurrence in the form + # "projects/`project_id`/occurrences/`OCCURRENCE_ID`" + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Note] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Note] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_occurrence_notes(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha1/{+name}/notes', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Note::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Note + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets a summary of the number and severity of occurrences. + # @param [String] parent + # This contains the project Id for example: projects/`project_id` + # @param [String] filter + # The filter expression. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::GetVulnzOccurrencesSummaryResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::GetVulnzOccurrencesSummaryResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_occurrence_vulnerability_summary(parent, filter: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha1/{+parent}/occurrences:vulnerabilitySummary', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::GetVulnzOccurrencesSummaryResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::GetVulnzOccurrencesSummaryResponse + command.params['parent'] = parent unless parent.nil? + command.query['filter'] = filter unless filter.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists active `Occurrences` for a given project matching the filters. + # @param [String] parent + # This contains the project Id for example: projects/`project_id`. + # @param [String] filter + # The filter expression. + # @param [String] kind + # The kind of occurrences to filter on. + # @param [String] name + # The name field contains the project Id. For example: + # "projects/`project_id` + # @Deprecated + # @param [Fixnum] page_size + # Number of occurrences to return in the list. + # @param [String] page_token + # Token to provide to skip to a particular spot in the list. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::ListOccurrencesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::ListOccurrencesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_occurrences(parent, filter: nil, kind: nil, name: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha1/{+parent}/occurrences', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::ListOccurrencesResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::ListOccurrencesResponse + command.params['parent'] = parent unless parent.nil? + command.query['filter'] = filter unless filter.nil? + command.query['kind'] = kind unless kind.nil? + command.query['name'] = name unless name.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Updates an existing occurrence. + # @param [String] name + # The name of the occurrence. + # Should be of the form "projects/`project_id`/occurrences/`OCCURRENCE_ID`". + # @param [Google::Apis::ContaineranalysisV1alpha1::Occurrence] occurrence_object + # @param [String] update_mask + # The fields to update. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Occurrence] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Occurrence] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def patch_project_occurrence(name, occurrence_object = nil, update_mask: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:patch, 'v1alpha1/{+name}', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::Occurrence::Representation + command.request_object = occurrence_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Occurrence::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Occurrence + command.params['name'] = name unless name.nil? + command.query['updateMask'] = update_mask unless update_mask.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Sets the access control policy on the specified `Note` or `Occurrence`. + # Requires `containeranalysis.notes.setIamPolicy` or + # `containeranalysis.occurrences.setIamPolicy` permission if the resource is + # a `Note` or an `Occurrence`, respectively. + # Attempting to call this method without these permissions will result in a ` + # `PERMISSION_DENIED` error. + # Attempting to call this method on a non-existent resource will result in a + # `NOT_FOUND` error if the user has `containeranalysis.notes.list` permission + # on a `Note` or `containeranalysis.occurrences.list` on an `Occurrence`, or + # a `PERMISSION_DENIED` error otherwise. The resource takes the following + # formats: `projects/`projectid`/occurrences/`occurrenceid`` for occurrences + # and projects/`projectid`/notes/`noteid` for notes + # @param [String] resource + # REQUIRED: The resource for which the policy is being specified. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1alpha1::SetIamPolicyRequest] set_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def set_occurrence_iam_policy(resource, set_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha1/{+resource}:setIamPolicy', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::SetIamPolicyRequest::Representation + command.request_object = set_iam_policy_request_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Policy::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Returns the permissions that a caller has on the specified note or + # occurrence resource. Requires list permission on the project (for example, + # "storage.objects.list" on the containing bucket for testing permission of + # an object). Attempting to call this method on a non-existent resource will + # result in a `NOT_FOUND` error if the user has list permission on the + # project, or a `PERMISSION_DENIED` error otherwise. The resource takes the + # following formats: `projects/`PROJECT_ID`/occurrences/`OCCURRENCE_ID`` for + # `Occurrences` and `projects/`PROJECT_ID`/notes/`NOTE_ID`` for `Notes` + # @param [String] resource + # REQUIRED: The resource for which the policy detail is being requested. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsRequest] test_iam_permissions_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def test_occurrence_iam_permissions(resource, test_iam_permissions_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha1/{+resource}:testIamPermissions', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsRequest::Representation + command.request_object = test_iam_permissions_request_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsResponse + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Creates a new `Operation`. + # @param [String] parent + # The project Id that this operation should be created under. + # @param [Google::Apis::ContaineranalysisV1alpha1::CreateOperationRequest] create_operation_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Operation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Operation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_operation(parent, create_operation_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha1/{+parent}/operations', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::CreateOperationRequest::Representation + command.request_object = create_operation_request_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Operation::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Operation + command.params['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Updates an existing operation returns an error if operation + # does not exist. The only valid operations are to update mark the done bit + # change the result. + # @param [String] name + # The name of the Operation. + # Should be of the form "projects/`provider_id`/operations/`operation_id`". + # @param [Google::Apis::ContaineranalysisV1alpha1::UpdateOperationRequest] update_operation_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Operation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Operation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def patch_project_operation(name, update_operation_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:patch, 'v1alpha1/{+name}', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::UpdateOperationRequest::Representation + command.request_object = update_operation_request_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Operation::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Operation + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets a specific scan configuration for a project. + # @param [String] name + # The name of the ScanConfig in the form + # projects/`project_id`/scanConfigs/`scan_config_id` + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::ScanConfig] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::ScanConfig] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_scan_config(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha1/{+name}', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::ScanConfig::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::ScanConfig + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists scan configurations for a project. + # @param [String] parent + # This containers the project Id i.e.: projects/`project_id` + # @param [String] filter + # The filter expression. + # @param [Fixnum] page_size + # The number of items to return. + # @param [String] page_token + # The page token to use for the next request. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::ListScanConfigsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::ListScanConfigsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_scan_configs(parent, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha1/{+parent}/scanConfigs', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::ListScanConfigsResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::ListScanConfigsResponse + command.params['parent'] = parent unless parent.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Updates the scan configuration to a new value. + # @param [String] name + # The scan config to update of the form + # projects/`project_id`/scanConfigs/`scan_config_id`. + # @param [Google::Apis::ContaineranalysisV1alpha1::ScanConfig] scan_config_object + # @param [String] update_mask + # The fields to update. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::ScanConfig] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::ScanConfig] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def patch_project_scan_config(name, scan_config_object = nil, update_mask: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:patch, 'v1alpha1/{+name}', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::ScanConfig::Representation + command.request_object = scan_config_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::ScanConfig::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::ScanConfig + command.params['name'] = name unless name.nil? + command.query['updateMask'] = update_mask unless update_mask.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Creates a new `Note`. + # @param [String] name + # The name of the project. + # Should be of the form "providers/`provider_id`". + # @Deprecated + # @param [Google::Apis::ContaineranalysisV1alpha1::Note] note_object + # @param [String] note_id + # The ID to use for this note. + # @param [String] parent + # This field contains the project Id for example: + # "projects/`project_id` + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Note] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Note] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_provider_note(name, note_object = nil, note_id: nil, parent: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha1/{+name}/notes', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::Note::Representation + command.request_object = note_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Note::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Note + command.params['name'] = name unless name.nil? + command.query['noteId'] = note_id unless note_id.nil? + command.query['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Deletes the given `Note` from the system. + # @param [String] name + # The name of the note in the form of + # "providers/`provider_id`/notes/`NOTE_ID`" + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Empty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Empty] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def delete_provider_note(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:delete, 'v1alpha1/{+name}', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Empty::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Empty + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Returns the requested `Note`. + # @param [String] name + # The name of the note in the form of + # "providers/`provider_id`/notes/`NOTE_ID`" + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Note] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Note] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_provider_note(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha1/{+name}', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Note::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Note + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the access control policy for a note or an `Occurrence` resource. + # Requires `containeranalysis.notes.setIamPolicy` or + # `containeranalysis.occurrences.setIamPolicy` permission if the resource is + # a note or occurrence, respectively. + # Attempting to call this method on a resource without the required + # permission will result in a `PERMISSION_DENIED` error. Attempting to call + # this method on a non-existent resource will result in a `NOT_FOUND` error + # if the user has list permission on the project, or a `PERMISSION_DENIED` + # error otherwise. The resource takes the following formats: + # `projects/`PROJECT_ID`/occurrences/`OCCURRENCE_ID`` for occurrences and + # projects/`PROJECT_ID`/notes/`NOTE_ID` for notes + # @param [String] resource + # REQUIRED: The resource for which the policy is being requested. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1alpha1::GetIamPolicyRequest] get_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_provider_note_iam_policy(resource, get_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha1/{+resource}:getIamPolicy', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::GetIamPolicyRequest::Representation + command.request_object = get_iam_policy_request_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Policy::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists all `Notes` for a given project. + # @param [String] name + # The name field will contain the project Id for example: + # "providers/`provider_id` + # @Deprecated + # @param [String] filter + # The filter expression. + # @param [Fixnum] page_size + # Number of notes to return in the list. + # @param [String] page_token + # Token to provide to skip to a particular spot in the list. + # @param [String] parent + # This field contains the project Id for example: "projects/`PROJECT_ID`". + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::ListNotesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::ListNotesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_provider_notes(name, filter: nil, page_size: nil, page_token: nil, parent: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha1/{+name}/notes', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::ListNotesResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::ListNotesResponse + command.params['name'] = name unless name.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Updates an existing `Note`. + # @param [String] name + # The name of the note. + # Should be of the form "projects/`provider_id`/notes/`note_id`". + # @param [Google::Apis::ContaineranalysisV1alpha1::Note] note_object + # @param [String] update_mask + # The fields to update. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Note] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Note] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def patch_provider_note(name, note_object = nil, update_mask: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:patch, 'v1alpha1/{+name}', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::Note::Representation + command.request_object = note_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Note::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Note + command.params['name'] = name unless name.nil? + command.query['updateMask'] = update_mask unless update_mask.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Sets the access control policy on the specified `Note` or `Occurrence`. + # Requires `containeranalysis.notes.setIamPolicy` or + # `containeranalysis.occurrences.setIamPolicy` permission if the resource is + # a `Note` or an `Occurrence`, respectively. + # Attempting to call this method without these permissions will result in a ` + # `PERMISSION_DENIED` error. + # Attempting to call this method on a non-existent resource will result in a + # `NOT_FOUND` error if the user has `containeranalysis.notes.list` permission + # on a `Note` or `containeranalysis.occurrences.list` on an `Occurrence`, or + # a `PERMISSION_DENIED` error otherwise. The resource takes the following + # formats: `projects/`projectid`/occurrences/`occurrenceid`` for occurrences + # and projects/`projectid`/notes/`noteid` for notes + # @param [String] resource + # REQUIRED: The resource for which the policy is being specified. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1alpha1::SetIamPolicyRequest] set_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def set_provider_note_iam_policy(resource, set_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha1/{+resource}:setIamPolicy', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::SetIamPolicyRequest::Representation + command.request_object = set_iam_policy_request_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::Policy::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Returns the permissions that a caller has on the specified note or + # occurrence resource. Requires list permission on the project (for example, + # "storage.objects.list" on the containing bucket for testing permission of + # an object). Attempting to call this method on a non-existent resource will + # result in a `NOT_FOUND` error if the user has list permission on the + # project, or a `PERMISSION_DENIED` error otherwise. The resource takes the + # following formats: `projects/`PROJECT_ID`/occurrences/`OCCURRENCE_ID`` for + # `Occurrences` and `projects/`PROJECT_ID`/notes/`NOTE_ID`` for `Notes` + # @param [String] resource + # REQUIRED: The resource for which the policy detail is being requested. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsRequest] test_iam_permissions_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def test_provider_note_iam_permissions(resource, test_iam_permissions_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha1/{+resource}:testIamPermissions', options) + command.request_representation = Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsRequest::Representation + command.request_object = test_iam_permissions_request_object + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::TestIamPermissionsResponse + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists `Occurrences` referencing the specified `Note`. Use this method to + # get all occurrences referencing your `Note` across all your customer + # projects. + # @param [String] name + # The name field will contain the note name for example: + # "provider/`provider_id`/notes/`note_id`" + # @param [String] filter + # The filter expression. + # @param [Fixnum] page_size + # Number of notes to return in the list. + # @param [String] page_token + # Token to provide to skip to a particular spot in the list. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1alpha1::ListNoteOccurrencesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1alpha1::ListNoteOccurrencesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_provider_note_occurrences(name, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha1/{+name}/occurrences', options) + command.response_representation = Google::Apis::ContaineranalysisV1alpha1::ListNoteOccurrencesResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1alpha1::ListNoteOccurrencesResponse + command.params['name'] = name unless name.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + protected + + def apply_command_defaults(command) + command.query['key'] = key unless key.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + end + end + end + end +end diff --git a/generated/google/apis/containeranalysis_v1beta1.rb b/generated/google/apis/containeranalysis_v1beta1.rb new file mode 100644 index 000000000..7c5eb7f4b --- /dev/null +++ b/generated/google/apis/containeranalysis_v1beta1.rb @@ -0,0 +1,35 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/containeranalysis_v1beta1/service.rb' +require 'google/apis/containeranalysis_v1beta1/classes.rb' +require 'google/apis/containeranalysis_v1beta1/representations.rb' + +module Google + module Apis + # Container Analysis API + # + # An implementation of the Grafeas API, which stores, and enables querying and + # retrieval of critical metadata about all of your software artifacts. + # + # @see https://cloud.google.com/container-analysis/api/reference/rest/ + module ContaineranalysisV1beta1 + VERSION = 'V1beta1' + REVISION = '20181207' + + # View and manage your data across Google Cloud Platform services + AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' + end + end +end diff --git a/generated/google/apis/containeranalysis_v1beta1/classes.rb b/generated/google/apis/containeranalysis_v1beta1/classes.rb new file mode 100644 index 000000000..b1762256c --- /dev/null +++ b/generated/google/apis/containeranalysis_v1beta1/classes.rb @@ -0,0 +1,2702 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module ContaineranalysisV1beta1 + + # An alias to a repo revision. + class AliasContext + include Google::Apis::Core::Hashable + + # The alias kind. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # The alias name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @kind = args[:kind] if args.key?(:kind) + @name = args[:name] if args.key?(:name) + end + end + + # Artifact describes a build product. + class Artifact + include Google::Apis::Core::Hashable + + # Hash or checksum value of a binary, or Docker Registry 2.0 digest of a + # container. + # Corresponds to the JSON property `checksum` + # @return [String] + attr_accessor :checksum + + # Artifact ID, if any; for container images, this will be a URL by digest + # like `gcr.io/projectID/imagename@sha256:123456`. + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # Related artifact names. This may be the path to a binary or jar file, or in + # the case of a container build, the name used to push the container image to + # Google Container Registry, as presented to `docker push`. Note that a + # single Artifact ID can have multiple names, for example if two tags are + # applied to one image. + # Corresponds to the JSON property `names` + # @return [Array] + attr_accessor :names + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @checksum = args[:checksum] if args.key?(:checksum) + @id = args[:id] if args.key?(:id) + @names = args[:names] if args.key?(:names) + end + end + + # Occurrence that represents a single "attestation". The authenticity of an + # attestation can be verified using the attached signature. If the verifier + # trusts the public key of the signer, then verifying the signature is + # sufficient to establish trust. In this circumstance, the authority to which + # this attestation is attached is primarily useful for look-up (how to find + # this attestation if you already know the authority and artifact to be + # verified) and intent (which authority was this attestation intended to sign + # for). + class Attestation + include Google::Apis::Core::Hashable + + # An attestation wrapper with a PGP-compatible signature. This message only + # supports `ATTACHED` signatures, where the payload that is signed is included + # alongside the signature itself in the same file. + # Corresponds to the JSON property `pgpSignedAttestation` + # @return [Google::Apis::ContaineranalysisV1beta1::PgpSignedAttestation] + attr_accessor :pgp_signed_attestation + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @pgp_signed_attestation = args[:pgp_signed_attestation] if args.key?(:pgp_signed_attestation) + end + end + + # Specifies the audit configuration for a service. + # The configuration determines which permission types are logged, and what + # identities, if any, are exempted from logging. + # An AuditConfig must have one or more AuditLogConfigs. + # If there are AuditConfigs for both `allServices` and a specific service, + # the union of the two AuditConfigs is used for that service: the log_types + # specified in each AuditConfig are enabled, and the exempted_members in each + # AuditLogConfig are exempted. + # Example Policy with multiple AuditConfigs: + # ` + # "audit_configs": [ + # ` + # "service": "allServices" + # "audit_log_configs": [ + # ` + # "log_type": "DATA_READ", + # "exempted_members": [ + # "user:foo@gmail.com" + # ] + # `, + # ` + # "log_type": "DATA_WRITE", + # `, + # ` + # "log_type": "ADMIN_READ", + # ` + # ] + # `, + # ` + # "service": "fooservice.googleapis.com" + # "audit_log_configs": [ + # ` + # "log_type": "DATA_READ", + # `, + # ` + # "log_type": "DATA_WRITE", + # "exempted_members": [ + # "user:bar@gmail.com" + # ] + # ` + # ] + # ` + # ] + # ` + # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ + # logging. It also exempts foo@gmail.com from DATA_READ logging, and + # bar@gmail.com from DATA_WRITE logging. + class AuditConfig + include Google::Apis::Core::Hashable + + # The configuration for logging of each type of permission. + # Corresponds to the JSON property `auditLogConfigs` + # @return [Array] + attr_accessor :audit_log_configs + + # Specifies a service that will be enabled for audit logging. + # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + # `allServices` is a special value that covers all services. + # Corresponds to the JSON property `service` + # @return [String] + attr_accessor :service + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs) + @service = args[:service] if args.key?(:service) + end + end + + # Provides the configuration for logging a type of permissions. + # Example: + # ` + # "audit_log_configs": [ + # ` + # "log_type": "DATA_READ", + # "exempted_members": [ + # "user:foo@gmail.com" + # ] + # `, + # ` + # "log_type": "DATA_WRITE", + # ` + # ] + # ` + # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting + # foo@gmail.com from DATA_READ logging. + class AuditLogConfig + include Google::Apis::Core::Hashable + + # Specifies the identities that do not cause logging for this type of + # permission. + # Follows the same format of Binding.members. + # Corresponds to the JSON property `exemptedMembers` + # @return [Array] + attr_accessor :exempted_members + + # The log type that this config enables. + # Corresponds to the JSON property `logType` + # @return [String] + attr_accessor :log_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @exempted_members = args[:exempted_members] if args.key?(:exempted_members) + @log_type = args[:log_type] if args.key?(:log_type) + end + end + + # Note kind that represents a logical attestation "role" or "authority". For + # example, an organization might have one `Authority` for "QA" and one for + # "build". This note is intended to act strictly as a grouping mechanism for + # the attached occurrences (Attestations). This grouping mechanism also + # provides a security boundary, since IAM ACLs gate the ability for a principle + # to attach an occurrence to a given note. It also provides a single point of + # lookup to find all attached attestation occurrences, even if they don't all + # live in the same project. + class Authority + include Google::Apis::Core::Hashable + + # This submessage provides human-readable hints about the purpose of the + # authority. Because the name of a note acts as its resource reference, it is + # important to disambiguate the canonical name of the Note (which might be a + # UUID for security purposes) from "readable" names more suitable for debug + # output. Note that these hints should not be used to look up authorities in + # security sensitive contexts, such as when looking up attestations to + # verify. + # Corresponds to the JSON property `hint` + # @return [Google::Apis::ContaineranalysisV1beta1::Hint] + attr_accessor :hint + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @hint = args[:hint] if args.key?(:hint) + end + end + + # Basis describes the base image portion (Note) of the DockerImage + # relationship. Linked occurrences are derived from this or an + # equivalent image via: + # FROM + # Or an equivalent reference, e.g. a tag of the resource_url. + class Basis + include Google::Apis::Core::Hashable + + # A set of properties that uniquely identify a given Docker image. + # Corresponds to the JSON property `fingerprint` + # @return [Google::Apis::ContaineranalysisV1beta1::Fingerprint] + attr_accessor :fingerprint + + # Required. Immutable. The resource_url for the resource representing the + # basis of associated occurrence images. + # Corresponds to the JSON property `resourceUrl` + # @return [String] + attr_accessor :resource_url + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @fingerprint = args[:fingerprint] if args.key?(:fingerprint) + @resource_url = args[:resource_url] if args.key?(:resource_url) + end + end + + # Request to create notes in batch. + class BatchCreateNotesRequest + include Google::Apis::Core::Hashable + + # The notes to create. Max allowed length is 1000. + # Corresponds to the JSON property `notes` + # @return [Hash] + attr_accessor :notes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @notes = args[:notes] if args.key?(:notes) + end + end + + # Response for creating notes in batch. + class BatchCreateNotesResponse + include Google::Apis::Core::Hashable + + # The notes that were created. + # Corresponds to the JSON property `notes` + # @return [Array] + attr_accessor :notes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @notes = args[:notes] if args.key?(:notes) + end + end + + # Request to create occurrences in batch. + class BatchCreateOccurrencesRequest + include Google::Apis::Core::Hashable + + # The occurrences to create. Max allowed length is 1000. + # Corresponds to the JSON property `occurrences` + # @return [Array] + attr_accessor :occurrences + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @occurrences = args[:occurrences] if args.key?(:occurrences) + end + end + + # Response for creating occurrences in batch. + class BatchCreateOccurrencesResponse + include Google::Apis::Core::Hashable + + # The occurrences that were created. + # Corresponds to the JSON property `occurrences` + # @return [Array] + attr_accessor :occurrences + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @occurrences = args[:occurrences] if args.key?(:occurrences) + end + end + + # Associates `members` with a `role`. + class Binding + include Google::Apis::Core::Hashable + + # Represents an expression text. Example: + # title: "User account presence" + # description: "Determines whether the request has a user account" + # expression: "size(request.user) > 0" + # Corresponds to the JSON property `condition` + # @return [Google::Apis::ContaineranalysisV1beta1::Expr] + attr_accessor :condition + + # Specifies the identities requesting access for a Cloud Platform resource. + # `members` can have the following values: + # * `allUsers`: A special identifier that represents anyone who is + # on the internet; with or without a Google account. + # * `allAuthenticatedUsers`: A special identifier that represents anyone + # who is authenticated with a Google account or a service account. + # * `user:`emailid``: An email address that represents a specific Google + # account. For example, `alice@gmail.com` . + # * `serviceAccount:`emailid``: An email address that represents a service + # account. For example, `my-other-app@appspot.gserviceaccount.com`. + # * `group:`emailid``: An email address that represents a Google group. + # For example, `admins@example.com`. + # * `domain:`domain``: A Google Apps domain name that represents all the + # users of that domain. For example, `google.com` or `example.com`. + # Corresponds to the JSON property `members` + # @return [Array] + attr_accessor :members + + # Role that is assigned to `members`. + # For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + # Corresponds to the JSON property `role` + # @return [String] + attr_accessor :role + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @condition = args[:condition] if args.key?(:condition) + @members = args[:members] if args.key?(:members) + @role = args[:role] if args.key?(:role) + end + end + + # Note holding the version of the provider's builder and the signature of the + # provenance message in the build details occurrence. + class Build + include Google::Apis::Core::Hashable + + # Required. Immutable. Version of the builder which produced this build. + # Corresponds to the JSON property `builderVersion` + # @return [String] + attr_accessor :builder_version + + # Message encapsulating the signature of the verified build. + # Corresponds to the JSON property `signature` + # @return [Google::Apis::ContaineranalysisV1beta1::BuildSignature] + attr_accessor :signature + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @builder_version = args[:builder_version] if args.key?(:builder_version) + @signature = args[:signature] if args.key?(:signature) + end + end + + # Provenance of a build. Contains all information needed to verify the full + # details about the build from source to completion. + class BuildProvenance + include Google::Apis::Core::Hashable + + # Special options applied to this build. This is a catch-all field where + # build providers can enter any desired additional details. + # Corresponds to the JSON property `buildOptions` + # @return [Hash] + attr_accessor :build_options + + # Version string of the builder at the time this build was executed. + # Corresponds to the JSON property `builderVersion` + # @return [String] + attr_accessor :builder_version + + # Output of the build. + # Corresponds to the JSON property `builtArtifacts` + # @return [Array] + attr_accessor :built_artifacts + + # Commands requested by the build. + # Corresponds to the JSON property `commands` + # @return [Array] + attr_accessor :commands + + # Time at which the build was created. + # Corresponds to the JSON property `createTime` + # @return [String] + attr_accessor :create_time + + # E-mail address of the user who initiated this build. Note that this was the + # user's e-mail address at the time the build was initiated; this address may + # not represent the same end-user for all time. + # Corresponds to the JSON property `creator` + # @return [String] + attr_accessor :creator + + # Time at which execution of the build was finished. + # Corresponds to the JSON property `endTime` + # @return [String] + attr_accessor :end_time + + # Required. Unique identifier of the build. + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # URI where any logs for this provenance were written. + # Corresponds to the JSON property `logsUri` + # @return [String] + attr_accessor :logs_uri + + # ID of the project. + # Corresponds to the JSON property `projectId` + # @return [String] + attr_accessor :project_id + + # Source describes the location of the source used for the build. + # Corresponds to the JSON property `sourceProvenance` + # @return [Google::Apis::ContaineranalysisV1beta1::Source] + attr_accessor :source_provenance + + # Time at which execution of the build was started. + # Corresponds to the JSON property `startTime` + # @return [String] + attr_accessor :start_time + + # Trigger identifier if the build was triggered automatically; empty if not. + # Corresponds to the JSON property `triggerId` + # @return [String] + attr_accessor :trigger_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @build_options = args[:build_options] if args.key?(:build_options) + @builder_version = args[:builder_version] if args.key?(:builder_version) + @built_artifacts = args[:built_artifacts] if args.key?(:built_artifacts) + @commands = args[:commands] if args.key?(:commands) + @create_time = args[:create_time] if args.key?(:create_time) + @creator = args[:creator] if args.key?(:creator) + @end_time = args[:end_time] if args.key?(:end_time) + @id = args[:id] if args.key?(:id) + @logs_uri = args[:logs_uri] if args.key?(:logs_uri) + @project_id = args[:project_id] if args.key?(:project_id) + @source_provenance = args[:source_provenance] if args.key?(:source_provenance) + @start_time = args[:start_time] if args.key?(:start_time) + @trigger_id = args[:trigger_id] if args.key?(:trigger_id) + end + end + + # Message encapsulating the signature of the verified build. + class BuildSignature + include Google::Apis::Core::Hashable + + # An ID for the key used to sign. This could be either an ID for the key + # stored in `public_key` (such as the ID or fingerprint for a PGP key, or the + # CN for a cert), or a reference to an external key (such as a reference to a + # key in Cloud Key Management Service). + # Corresponds to the JSON property `keyId` + # @return [String] + attr_accessor :key_id + + # The type of the key, either stored in `public_key` or referenced in + # `key_id`. + # Corresponds to the JSON property `keyType` + # @return [String] + attr_accessor :key_type + + # Public key of the builder which can be used to verify that the related + # findings are valid and unchanged. If `key_type` is empty, this defaults + # to PEM encoded public keys. + # This field may be empty if `key_id` references an external key. + # For Cloud Build based signatures, this is a PEM encoded public + # key. To verify the Cloud Build signature, place the contents of + # this field into a file (public.pem). The signature field is base64-decoded + # into its binary representation in signature.bin, and the provenance bytes + # from `BuildDetails` are base64-decoded into a binary representation in + # signed.bin. OpenSSL can then verify the signature: + # `openssl sha256 -verify public.pem -signature signature.bin signed.bin` + # Corresponds to the JSON property `publicKey` + # @return [String] + attr_accessor :public_key + + # Required. Signature of the related `BuildProvenance`. In JSON, this is + # base-64 encoded. + # Corresponds to the JSON property `signature` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :signature + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @key_id = args[:key_id] if args.key?(:key_id) + @key_type = args[:key_type] if args.key?(:key_type) + @public_key = args[:public_key] if args.key?(:public_key) + @signature = args[:signature] if args.key?(:signature) + end + end + + # A CloudRepoSourceContext denotes a particular revision in a Google Cloud + # Source Repo. + class CloudRepoSourceContext + include Google::Apis::Core::Hashable + + # An alias to a repo revision. + # Corresponds to the JSON property `aliasContext` + # @return [Google::Apis::ContaineranalysisV1beta1::AliasContext] + attr_accessor :alias_context + + # A unique identifier for a Cloud Repo. + # Corresponds to the JSON property `repoId` + # @return [Google::Apis::ContaineranalysisV1beta1::RepoId] + attr_accessor :repo_id + + # A revision ID. + # Corresponds to the JSON property `revisionId` + # @return [String] + attr_accessor :revision_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @alias_context = args[:alias_context] if args.key?(:alias_context) + @repo_id = args[:repo_id] if args.key?(:repo_id) + @revision_id = args[:revision_id] if args.key?(:revision_id) + end + end + + # Command describes a step performed as part of the build pipeline. + class Command + include Google::Apis::Core::Hashable + + # Command-line arguments used when executing this command. + # Corresponds to the JSON property `args` + # @return [Array] + attr_accessor :args + + # Working directory (relative to project source root) used when running this + # command. + # Corresponds to the JSON property `dir` + # @return [String] + attr_accessor :dir + + # Environment variables set before running this command. + # Corresponds to the JSON property `env` + # @return [Array] + attr_accessor :env + + # Optional unique identifier for this command, used in wait_for to reference + # this command as a dependency. + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # Required. Name of the command, as presented on the command line, or if the + # command is packaged as a Docker container, as presented to `docker pull`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The ID(s) of the command(s) that this command depends on. + # Corresponds to the JSON property `waitFor` + # @return [Array] + attr_accessor :wait_for + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @args = args[:args] if args.key?(:args) + @dir = args[:dir] if args.key?(:dir) + @env = args[:env] if args.key?(:env) + @id = args[:id] if args.key?(:id) + @name = args[:name] if args.key?(:name) + @wait_for = args[:wait_for] if args.key?(:wait_for) + end + end + + # An artifact that can be deployed in some runtime. + class Deployable + include Google::Apis::Core::Hashable + + # Required. Resource URI for the artifact being deployed. + # Corresponds to the JSON property `resourceUri` + # @return [Array] + attr_accessor :resource_uri + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @resource_uri = args[:resource_uri] if args.key?(:resource_uri) + end + end + + # The period during which some deployable was active in a runtime. + class Deployment + include Google::Apis::Core::Hashable + + # Address of the runtime element hosting this deployment. + # Corresponds to the JSON property `address` + # @return [String] + attr_accessor :address + + # Configuration used to create this deployment. + # Corresponds to the JSON property `config` + # @return [String] + attr_accessor :config + + # Required. Beginning of the lifetime of this deployment. + # Corresponds to the JSON property `deployTime` + # @return [String] + attr_accessor :deploy_time + + # Platform hosting this deployment. + # Corresponds to the JSON property `platform` + # @return [String] + attr_accessor :platform + + # Output only. Resource URI for the artifact being deployed taken from + # the deployable field with the same name. + # Corresponds to the JSON property `resourceUri` + # @return [Array] + attr_accessor :resource_uri + + # End of the lifetime of this deployment. + # Corresponds to the JSON property `undeployTime` + # @return [String] + attr_accessor :undeploy_time + + # Identity of the user that triggered this deployment. + # Corresponds to the JSON property `userEmail` + # @return [String] + attr_accessor :user_email + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @address = args[:address] if args.key?(:address) + @config = args[:config] if args.key?(:config) + @deploy_time = args[:deploy_time] if args.key?(:deploy_time) + @platform = args[:platform] if args.key?(:platform) + @resource_uri = args[:resource_uri] if args.key?(:resource_uri) + @undeploy_time = args[:undeploy_time] if args.key?(:undeploy_time) + @user_email = args[:user_email] if args.key?(:user_email) + end + end + + # Derived describes the derived image portion (Occurrence) of the DockerImage + # relationship. This image would be produced from a Dockerfile with FROM + # . + class Derived + include Google::Apis::Core::Hashable + + # Output only. This contains the base image URL for the derived image + # occurrence. + # Corresponds to the JSON property `baseResourceUrl` + # @return [String] + attr_accessor :base_resource_url + + # Output only. The number of layers by which this image differs from the + # associated image basis. + # Corresponds to the JSON property `distance` + # @return [Fixnum] + attr_accessor :distance + + # A set of properties that uniquely identify a given Docker image. + # Corresponds to the JSON property `fingerprint` + # @return [Google::Apis::ContaineranalysisV1beta1::Fingerprint] + attr_accessor :fingerprint + + # This contains layer-specific metadata, if populated it has length + # "distance" and is ordered with [distance] being the layer immediately + # following the base image and [1] being the final layer. + # Corresponds to the JSON property `layerInfo` + # @return [Array] + attr_accessor :layer_info + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @base_resource_url = args[:base_resource_url] if args.key?(:base_resource_url) + @distance = args[:distance] if args.key?(:distance) + @fingerprint = args[:fingerprint] if args.key?(:fingerprint) + @layer_info = args[:layer_info] if args.key?(:layer_info) + end + end + + # Identifies all appearances of this vulnerability in the package for a + # specific distro/location. For example: glibc in + # cpe:/o:debian:debian_linux:8 for versions 2.1 - 2.2 + class Detail + include Google::Apis::Core::Hashable + + # Required. The CPE URI in + # [cpe format](https://cpe.mitre.org/specification/) in which the + # vulnerability manifests. Examples include distro or storage location for + # vulnerable jar. + # Corresponds to the JSON property `cpeUri` + # @return [String] + attr_accessor :cpe_uri + + # A vendor-specific description of this note. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # The location of the vulnerability. + # Corresponds to the JSON property `fixedLocation` + # @return [Google::Apis::ContaineranalysisV1beta1::VulnerabilityLocation] + attr_accessor :fixed_location + + # Whether this detail is obsolete. Occurrences are expected not to point to + # obsolete details. + # Corresponds to the JSON property `isObsolete` + # @return [Boolean] + attr_accessor :is_obsolete + alias_method :is_obsolete?, :is_obsolete + + # Version contains structured information about the version of a package. + # Corresponds to the JSON property `maxAffectedVersion` + # @return [Google::Apis::ContaineranalysisV1beta1::Version] + attr_accessor :max_affected_version + + # Version contains structured information about the version of a package. + # Corresponds to the JSON property `minAffectedVersion` + # @return [Google::Apis::ContaineranalysisV1beta1::Version] + attr_accessor :min_affected_version + + # Required. The name of the package where the vulnerability was found. + # Corresponds to the JSON property `package` + # @return [String] + attr_accessor :package + + # The type of package; whether native or non native(ruby gems, node.js + # packages etc). + # Corresponds to the JSON property `packageType` + # @return [String] + attr_accessor :package_type + + # The severity (eg: distro assigned severity) for this vulnerability. + # Corresponds to the JSON property `severityName` + # @return [String] + attr_accessor :severity_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri) + @description = args[:description] if args.key?(:description) + @fixed_location = args[:fixed_location] if args.key?(:fixed_location) + @is_obsolete = args[:is_obsolete] if args.key?(:is_obsolete) + @max_affected_version = args[:max_affected_version] if args.key?(:max_affected_version) + @min_affected_version = args[:min_affected_version] if args.key?(:min_affected_version) + @package = args[:package] if args.key?(:package) + @package_type = args[:package_type] if args.key?(:package_type) + @severity_name = args[:severity_name] if args.key?(:severity_name) + end + end + + # Details of an attestation occurrence. + class Details + include Google::Apis::Core::Hashable + + # Occurrence that represents a single "attestation". The authenticity of an + # attestation can be verified using the attached signature. If the verifier + # trusts the public key of the signer, then verifying the signature is + # sufficient to establish trust. In this circumstance, the authority to which + # this attestation is attached is primarily useful for look-up (how to find + # this attestation if you already know the authority and artifact to be + # verified) and intent (which authority was this attestation intended to sign + # for). + # Corresponds to the JSON property `attestation` + # @return [Google::Apis::ContaineranalysisV1beta1::Attestation] + attr_accessor :attestation + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @attestation = args[:attestation] if args.key?(:attestation) + end + end + + # Provides information about the analysis status of a discovered resource. + class Discovered + include Google::Apis::Core::Hashable + + # The status of discovery for the resource. + # Corresponds to the JSON property `analysisStatus` + # @return [String] + attr_accessor :analysis_status + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `analysisStatusError` + # @return [Google::Apis::ContaineranalysisV1beta1::Status] + attr_accessor :analysis_status_error + + # Whether the resource is continuously analyzed. + # Corresponds to the JSON property `continuousAnalysis` + # @return [String] + attr_accessor :continuous_analysis + + # The last time continuous analysis was done for this resource. + # Deprecated, do not use. + # Corresponds to the JSON property `lastAnalysisTime` + # @return [String] + attr_accessor :last_analysis_time + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @analysis_status = args[:analysis_status] if args.key?(:analysis_status) + @analysis_status_error = args[:analysis_status_error] if args.key?(:analysis_status_error) + @continuous_analysis = args[:continuous_analysis] if args.key?(:continuous_analysis) + @last_analysis_time = args[:last_analysis_time] if args.key?(:last_analysis_time) + end + end + + # A note that indicates a type of analysis a provider would perform. This note + # exists in a provider's project. A `Discovery` occurrence is created in a + # consumer's project at the start of analysis. + class Discovery + include Google::Apis::Core::Hashable + + # Required. Immutable. The kind of analysis that is handled by this + # discovery. + # Corresponds to the JSON property `analysisKind` + # @return [String] + attr_accessor :analysis_kind + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @analysis_kind = args[:analysis_kind] if args.key?(:analysis_kind) + end + end + + # This represents a particular channel of distribution for a given package. + # E.g., Debian's jessie-backports dpkg mirror. + class Distribution + include Google::Apis::Core::Hashable + + # The CPU architecture for which packages in this distribution channel were + # built. + # Corresponds to the JSON property `architecture` + # @return [String] + attr_accessor :architecture + + # Required. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) + # denoting the package manager version distributing a package. + # Corresponds to the JSON property `cpeUri` + # @return [String] + attr_accessor :cpe_uri + + # The distribution channel-specific description of this package. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Version contains structured information about the version of a package. + # Corresponds to the JSON property `latestVersion` + # @return [Google::Apis::ContaineranalysisV1beta1::Version] + attr_accessor :latest_version + + # A freeform string denoting the maintainer of this package. + # Corresponds to the JSON property `maintainer` + # @return [String] + attr_accessor :maintainer + + # The distribution channel-specific homepage for this package. + # Corresponds to the JSON property `url` + # @return [String] + attr_accessor :url + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @architecture = args[:architecture] if args.key?(:architecture) + @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri) + @description = args[:description] if args.key?(:description) + @latest_version = args[:latest_version] if args.key?(:latest_version) + @maintainer = args[:maintainer] if args.key?(:maintainer) + @url = args[:url] if args.key?(:url) + end + end + + # 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); + # ` + # The JSON representation for `Empty` is empty JSON object ````. + class Empty + include Google::Apis::Core::Hashable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + end + end + + # Represents an expression text. Example: + # title: "User account presence" + # description: "Determines whether the request has a user account" + # expression: "size(request.user) > 0" + class Expr + include Google::Apis::Core::Hashable + + # An optional description of the expression. This is a longer text which + # describes the expression, e.g. when hovered over it in a UI. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Textual representation of an expression in + # Common Expression Language syntax. + # The application context of the containing message determines which + # well-known feature set of CEL is supported. + # Corresponds to the JSON property `expression` + # @return [String] + attr_accessor :expression + + # An optional string indicating the location of the expression for error + # reporting, e.g. a file name and a position in the file. + # Corresponds to the JSON property `location` + # @return [String] + attr_accessor :location + + # An optional title for the expression, i.e. a short string describing + # its purpose. This can be used e.g. in UIs which allow to enter the + # expression. + # Corresponds to the JSON property `title` + # @return [String] + attr_accessor :title + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] if args.key?(:description) + @expression = args[:expression] if args.key?(:expression) + @location = args[:location] if args.key?(:location) + @title = args[:title] if args.key?(:title) + end + end + + # Container message for hashes of byte content of files, used in source + # messages to verify integrity of source input to the build. + class FileHashes + include Google::Apis::Core::Hashable + + # Required. Collection of file hashes. + # Corresponds to the JSON property `fileHash` + # @return [Array] + attr_accessor :file_hash + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @file_hash = args[:file_hash] if args.key?(:file_hash) + end + end + + # A set of properties that uniquely identify a given Docker image. + class Fingerprint + include Google::Apis::Core::Hashable + + # Required. The layer ID of the final layer in the Docker image's v1 + # representation. + # Corresponds to the JSON property `v1Name` + # @return [String] + attr_accessor :v1_name + + # Required. The ordered list of v2 blobs that represent a given image. + # Corresponds to the JSON property `v2Blob` + # @return [Array] + attr_accessor :v2_blob + + # Output only. The name of the image's v2 blobs computed via: + # [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1]) + # Only the name of the final blob is kept. + # Corresponds to the JSON property `v2Name` + # @return [String] + attr_accessor :v2_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @v1_name = args[:v1_name] if args.key?(:v1_name) + @v2_blob = args[:v2_blob] if args.key?(:v2_blob) + @v2_name = args[:v2_name] if args.key?(:v2_name) + end + end + + # Per resource and severity counts of fixable and total vulnerabilites. + class FixableTotalByDigest + include Google::Apis::Core::Hashable + + # The number of fixable vulnerabilities associated with this resource. + # Corresponds to the JSON property `fixableCount` + # @return [Fixnum] + attr_accessor :fixable_count + + # An entity that can have metadata. For example, a Docker image. + # Corresponds to the JSON property `resource` + # @return [Google::Apis::ContaineranalysisV1beta1::Resource] + attr_accessor :resource + + # The severity for this count. SEVERITY_UNSPECIFIED indicates total across + # all severities. + # Corresponds to the JSON property `severity` + # @return [String] + attr_accessor :severity + + # The total number of vulnerabilities associated with this resource. + # Corresponds to the JSON property `totalCount` + # @return [Fixnum] + attr_accessor :total_count + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @fixable_count = args[:fixable_count] if args.key?(:fixable_count) + @resource = args[:resource] if args.key?(:resource) + @severity = args[:severity] if args.key?(:severity) + @total_count = args[:total_count] if args.key?(:total_count) + end + end + + # A SourceContext referring to a Gerrit project. + class GerritSourceContext + include Google::Apis::Core::Hashable + + # An alias to a repo revision. + # Corresponds to the JSON property `aliasContext` + # @return [Google::Apis::ContaineranalysisV1beta1::AliasContext] + attr_accessor :alias_context + + # The full project name within the host. Projects may be nested, so + # "project/subproject" is a valid project name. The "repo name" is the + # hostURI/project. + # Corresponds to the JSON property `gerritProject` + # @return [String] + attr_accessor :gerrit_project + + # The URI of a running Gerrit instance. + # Corresponds to the JSON property `hostUri` + # @return [String] + attr_accessor :host_uri + + # A revision (commit) ID. + # Corresponds to the JSON property `revisionId` + # @return [String] + attr_accessor :revision_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @alias_context = args[:alias_context] if args.key?(:alias_context) + @gerrit_project = args[:gerrit_project] if args.key?(:gerrit_project) + @host_uri = args[:host_uri] if args.key?(:host_uri) + @revision_id = args[:revision_id] if args.key?(:revision_id) + end + end + + # Request message for `GetIamPolicy` method. + class GetIamPolicyRequest + include Google::Apis::Core::Hashable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + end + end + + # A GitSourceContext denotes a particular revision in a third party Git + # repository (e.g., GitHub). + class GitSourceContext + include Google::Apis::Core::Hashable + + # Git commit hash. + # Corresponds to the JSON property `revisionId` + # @return [String] + attr_accessor :revision_id + + # Git repository URL. + # Corresponds to the JSON property `url` + # @return [String] + attr_accessor :url + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @revision_id = args[:revision_id] if args.key?(:revision_id) + @url = args[:url] if args.key?(:url) + end + end + + # Metadata for all operations used and required for all operations + # that created by Container Analysis Providers + class GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata + include Google::Apis::Core::Hashable + + # Output only. The time this operation was created. + # Corresponds to the JSON property `createTime` + # @return [String] + attr_accessor :create_time + + # Output only. The time that this operation was marked completed or failed. + # Corresponds to the JSON property `endTime` + # @return [String] + attr_accessor :end_time + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @create_time = args[:create_time] if args.key?(:create_time) + @end_time = args[:end_time] if args.key?(:end_time) + end + end + + # Details of a build occurrence. + class GrafeasV1beta1BuildDetails + include Google::Apis::Core::Hashable + + # Provenance of a build. Contains all information needed to verify the full + # details about the build from source to completion. + # Corresponds to the JSON property `provenance` + # @return [Google::Apis::ContaineranalysisV1beta1::BuildProvenance] + attr_accessor :provenance + + # Serialized JSON representation of the provenance, used in generating the + # build signature in the corresponding build note. After verifying the + # signature, `provenance_bytes` can be unmarshalled and compared to the + # provenance to confirm that it is unchanged. A base64-encoded string + # representation of the provenance bytes is used for the signature in order + # to interoperate with openssl which expects this format for signature + # verification. + # The serialized form is captured both to avoid ambiguity in how the + # provenance is marshalled to json as well to prevent incompatibilities with + # future changes. + # Corresponds to the JSON property `provenanceBytes` + # @return [String] + attr_accessor :provenance_bytes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @provenance = args[:provenance] if args.key?(:provenance) + @provenance_bytes = args[:provenance_bytes] if args.key?(:provenance_bytes) + end + end + + # Details of a deployment occurrence. + class GrafeasV1beta1DeploymentDetails + include Google::Apis::Core::Hashable + + # The period during which some deployable was active in a runtime. + # Corresponds to the JSON property `deployment` + # @return [Google::Apis::ContaineranalysisV1beta1::Deployment] + attr_accessor :deployment + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @deployment = args[:deployment] if args.key?(:deployment) + end + end + + # Details of a discovery occurrence. + class GrafeasV1beta1DiscoveryDetails + include Google::Apis::Core::Hashable + + # Provides information about the analysis status of a discovered resource. + # Corresponds to the JSON property `discovered` + # @return [Google::Apis::ContaineranalysisV1beta1::Discovered] + attr_accessor :discovered + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @discovered = args[:discovered] if args.key?(:discovered) + end + end + + # Details of an image occurrence. + class GrafeasV1beta1ImageDetails + include Google::Apis::Core::Hashable + + # Derived describes the derived image portion (Occurrence) of the DockerImage + # relationship. This image would be produced from a Dockerfile with FROM + # . + # Corresponds to the JSON property `derivedImage` + # @return [Google::Apis::ContaineranalysisV1beta1::Derived] + attr_accessor :derived_image + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @derived_image = args[:derived_image] if args.key?(:derived_image) + end + end + + # Details of a package occurrence. + class GrafeasV1beta1PackageDetails + include Google::Apis::Core::Hashable + + # This represents how a particular software package may be installed on a + # system. + # Corresponds to the JSON property `installation` + # @return [Google::Apis::ContaineranalysisV1beta1::Installation] + attr_accessor :installation + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @installation = args[:installation] if args.key?(:installation) + end + end + + # Details of a vulnerability Occurrence. + class GrafeasV1beta1VulnerabilityDetails + include Google::Apis::Core::Hashable + + # Output only. The CVSS score of this vulnerability. CVSS score is on a + # scale of 0-10 where 0 indicates low severity and 10 indicates high + # severity. + # Corresponds to the JSON property `cvssScore` + # @return [Float] + attr_accessor :cvss_score + + # Output only. A detailed description of this vulnerability. + # Corresponds to the JSON property `longDescription` + # @return [String] + attr_accessor :long_description + + # Required. The set of affected locations and their fixes (if available) + # within the associated resource. + # Corresponds to the JSON property `packageIssue` + # @return [Array] + attr_accessor :package_issue + + # Output only. URLs related to this vulnerability. + # Corresponds to the JSON property `relatedUrls` + # @return [Array] + attr_accessor :related_urls + + # Output only. The note provider assigned Severity of the vulnerability. + # Corresponds to the JSON property `severity` + # @return [String] + attr_accessor :severity + + # Output only. A one sentence description of this vulnerability. + # Corresponds to the JSON property `shortDescription` + # @return [String] + attr_accessor :short_description + + # The type of package; whether native or non native(ruby gems, node.js + # packages etc) + # Corresponds to the JSON property `type` + # @return [String] + attr_accessor :type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cvss_score = args[:cvss_score] if args.key?(:cvss_score) + @long_description = args[:long_description] if args.key?(:long_description) + @package_issue = args[:package_issue] if args.key?(:package_issue) + @related_urls = args[:related_urls] if args.key?(:related_urls) + @severity = args[:severity] if args.key?(:severity) + @short_description = args[:short_description] if args.key?(:short_description) + @type = args[:type] if args.key?(:type) + end + end + + # Container message for hash values. + class HashProp + include Google::Apis::Core::Hashable + + # Required. The type of hash that was performed. + # Corresponds to the JSON property `type` + # @return [String] + attr_accessor :type + + # Required. The hash value. + # Corresponds to the JSON property `value` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @type = args[:type] if args.key?(:type) + @value = args[:value] if args.key?(:value) + end + end + + # This submessage provides human-readable hints about the purpose of the + # authority. Because the name of a note acts as its resource reference, it is + # important to disambiguate the canonical name of the Note (which might be a + # UUID for security purposes) from "readable" names more suitable for debug + # output. Note that these hints should not be used to look up authorities in + # security sensitive contexts, such as when looking up attestations to + # verify. + class Hint + include Google::Apis::Core::Hashable + + # Required. The human readable name of this attestation authority, for + # example "qa". + # Corresponds to the JSON property `humanReadableName` + # @return [String] + attr_accessor :human_readable_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @human_readable_name = args[:human_readable_name] if args.key?(:human_readable_name) + end + end + + # This represents how a particular software package may be installed on a + # system. + class Installation + include Google::Apis::Core::Hashable + + # Required. All of the places within the filesystem versions of this package + # have been found. + # Corresponds to the JSON property `location` + # @return [Array] + attr_accessor :location + + # Output only. The name of the installed package. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @location = args[:location] if args.key?(:location) + @name = args[:name] if args.key?(:name) + end + end + + # Layer holds metadata specific to a layer of a Docker image. + class Layer + include Google::Apis::Core::Hashable + + # The recovered arguments to the Dockerfile directive. + # Corresponds to the JSON property `arguments` + # @return [String] + attr_accessor :arguments + + # Required. The recovered Dockerfile directive used to construct this layer. + # Corresponds to the JSON property `directive` + # @return [String] + attr_accessor :directive + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arguments = args[:arguments] if args.key?(:arguments) + @directive = args[:directive] if args.key?(:directive) + end + end + + # Response for listing occurrences for a note. + class ListNoteOccurrencesResponse + include Google::Apis::Core::Hashable + + # Token to provide to skip to a particular spot in the list. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # The occurrences attached to the specified note. + # Corresponds to the JSON property `occurrences` + # @return [Array] + attr_accessor :occurrences + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @occurrences = args[:occurrences] if args.key?(:occurrences) + end + end + + # Response for listing notes. + class ListNotesResponse + include Google::Apis::Core::Hashable + + # The next pagination token in the list response. It should be used as + # `page_token` for the following request. An empty value means no more + # results. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # The notes requested. + # Corresponds to the JSON property `notes` + # @return [Array] + attr_accessor :notes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @notes = args[:notes] if args.key?(:notes) + end + end + + # Response for listing occurrences. + class ListOccurrencesResponse + include Google::Apis::Core::Hashable + + # The next pagination token in the list response. It should be used as + # `page_token` for the following request. An empty value means no more + # results. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # The occurrences requested. + # Corresponds to the JSON property `occurrences` + # @return [Array] + attr_accessor :occurrences + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @occurrences = args[:occurrences] if args.key?(:occurrences) + end + end + + # Response for listing scan configurations. + class ListScanConfigsResponse + include Google::Apis::Core::Hashable + + # The next pagination token in the list response. It should be used as + # `page_token` for the following request. An empty value means no more + # results. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # The scan configurations requested. + # Corresponds to the JSON property `scanConfigs` + # @return [Array] + attr_accessor :scan_configs + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @scan_configs = args[:scan_configs] if args.key?(:scan_configs) + end + end + + # An occurrence of a particular package installation found within a system's + # filesystem. E.g., glibc was found in `/var/lib/dpkg/status`. + class Location + include Google::Apis::Core::Hashable + + # Required. The CPE URI in [CPE format](https://cpe.mitre.org/specification/) + # denoting the package manager version distributing a package. + # Corresponds to the JSON property `cpeUri` + # @return [String] + attr_accessor :cpe_uri + + # The path from which we gathered that this package/version is installed. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + # Version contains structured information about the version of a package. + # Corresponds to the JSON property `version` + # @return [Google::Apis::ContaineranalysisV1beta1::Version] + attr_accessor :version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri) + @path = args[:path] if args.key?(:path) + @version = args[:version] if args.key?(:version) + end + end + + # A type of analysis that can be done for a resource. + class Note + include Google::Apis::Core::Hashable + + # Note kind that represents a logical attestation "role" or "authority". For + # example, an organization might have one `Authority` for "QA" and one for + # "build". This note is intended to act strictly as a grouping mechanism for + # the attached occurrences (Attestations). This grouping mechanism also + # provides a security boundary, since IAM ACLs gate the ability for a principle + # to attach an occurrence to a given note. It also provides a single point of + # lookup to find all attached attestation occurrences, even if they don't all + # live in the same project. + # Corresponds to the JSON property `attestationAuthority` + # @return [Google::Apis::ContaineranalysisV1beta1::Authority] + attr_accessor :attestation_authority + + # Basis describes the base image portion (Note) of the DockerImage + # relationship. Linked occurrences are derived from this or an + # equivalent image via: + # FROM + # Or an equivalent reference, e.g. a tag of the resource_url. + # Corresponds to the JSON property `baseImage` + # @return [Google::Apis::ContaineranalysisV1beta1::Basis] + attr_accessor :base_image + + # Note holding the version of the provider's builder and the signature of the + # provenance message in the build details occurrence. + # Corresponds to the JSON property `build` + # @return [Google::Apis::ContaineranalysisV1beta1::Build] + attr_accessor :build + + # Output only. The time this note was created. This field can be used as a + # filter in list requests. + # Corresponds to the JSON property `createTime` + # @return [String] + attr_accessor :create_time + + # An artifact that can be deployed in some runtime. + # Corresponds to the JSON property `deployable` + # @return [Google::Apis::ContaineranalysisV1beta1::Deployable] + attr_accessor :deployable + + # A note that indicates a type of analysis a provider would perform. This note + # exists in a provider's project. A `Discovery` occurrence is created in a + # consumer's project at the start of analysis. + # Corresponds to the JSON property `discovery` + # @return [Google::Apis::ContaineranalysisV1beta1::Discovery] + attr_accessor :discovery + + # Time of expiration for this note. Empty if note does not expire. + # Corresponds to the JSON property `expirationTime` + # @return [String] + attr_accessor :expiration_time + + # Output only. The type of analysis. This field can be used as a filter in + # list requests. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # A detailed description of this note. + # Corresponds to the JSON property `longDescription` + # @return [String] + attr_accessor :long_description + + # Output only. The name of the note in the form of + # `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # This represents a particular package that is distributed over various + # channels. E.g., glibc (aka libc6) is distributed by many, at various + # versions. + # Corresponds to the JSON property `package` + # @return [Google::Apis::ContaineranalysisV1beta1::Package] + attr_accessor :package + + # Other notes related to this note. + # Corresponds to the JSON property `relatedNoteNames` + # @return [Array] + attr_accessor :related_note_names + + # URLs associated with this note. + # Corresponds to the JSON property `relatedUrl` + # @return [Array] + attr_accessor :related_url + + # A one sentence description of this note. + # Corresponds to the JSON property `shortDescription` + # @return [String] + attr_accessor :short_description + + # Output only. The time this note was last updated. This field can be used as + # a filter in list requests. + # Corresponds to the JSON property `updateTime` + # @return [String] + attr_accessor :update_time + + # Vulnerability provides metadata about a security vulnerability in a Note. + # Corresponds to the JSON property `vulnerability` + # @return [Google::Apis::ContaineranalysisV1beta1::Vulnerability] + attr_accessor :vulnerability + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @attestation_authority = args[:attestation_authority] if args.key?(:attestation_authority) + @base_image = args[:base_image] if args.key?(:base_image) + @build = args[:build] if args.key?(:build) + @create_time = args[:create_time] if args.key?(:create_time) + @deployable = args[:deployable] if args.key?(:deployable) + @discovery = args[:discovery] if args.key?(:discovery) + @expiration_time = args[:expiration_time] if args.key?(:expiration_time) + @kind = args[:kind] if args.key?(:kind) + @long_description = args[:long_description] if args.key?(:long_description) + @name = args[:name] if args.key?(:name) + @package = args[:package] if args.key?(:package) + @related_note_names = args[:related_note_names] if args.key?(:related_note_names) + @related_url = args[:related_url] if args.key?(:related_url) + @short_description = args[:short_description] if args.key?(:short_description) + @update_time = args[:update_time] if args.key?(:update_time) + @vulnerability = args[:vulnerability] if args.key?(:vulnerability) + end + end + + # An instance of an analysis type that has been found on a resource. + class Occurrence + include Google::Apis::Core::Hashable + + # Details of an attestation occurrence. + # Corresponds to the JSON property `attestation` + # @return [Google::Apis::ContaineranalysisV1beta1::Details] + attr_accessor :attestation + + # Details of a build occurrence. + # Corresponds to the JSON property `build` + # @return [Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1BuildDetails] + attr_accessor :build + + # Output only. The time this occurrence was created. + # Corresponds to the JSON property `createTime` + # @return [String] + attr_accessor :create_time + + # Details of a deployment occurrence. + # Corresponds to the JSON property `deployment` + # @return [Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1DeploymentDetails] + attr_accessor :deployment + + # Details of an image occurrence. + # Corresponds to the JSON property `derivedImage` + # @return [Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1ImageDetails] + attr_accessor :derived_image + + # Details of a discovery occurrence. + # Corresponds to the JSON property `discovered` + # @return [Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1DiscoveryDetails] + attr_accessor :discovered + + # Details of a package occurrence. + # Corresponds to the JSON property `installation` + # @return [Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1PackageDetails] + attr_accessor :installation + + # Output only. This explicitly denotes which of the occurrence details are + # specified. This field can be used as a filter in list requests. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # Output only. The name of the occurrence in the form of + # `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Required. Immutable. The analysis note associated with this occurrence, in + # the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. This field can be + # used as a filter in list requests. + # Corresponds to the JSON property `noteName` + # @return [String] + attr_accessor :note_name + + # A description of actions that can be taken to remedy the note. + # Corresponds to the JSON property `remediation` + # @return [String] + attr_accessor :remediation + + # An entity that can have metadata. For example, a Docker image. + # Corresponds to the JSON property `resource` + # @return [Google::Apis::ContaineranalysisV1beta1::Resource] + attr_accessor :resource + + # Output only. The time this occurrence was last updated. + # Corresponds to the JSON property `updateTime` + # @return [String] + attr_accessor :update_time + + # Details of a vulnerability Occurrence. + # Corresponds to the JSON property `vulnerability` + # @return [Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1VulnerabilityDetails] + attr_accessor :vulnerability + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @attestation = args[:attestation] if args.key?(:attestation) + @build = args[:build] if args.key?(:build) + @create_time = args[:create_time] if args.key?(:create_time) + @deployment = args[:deployment] if args.key?(:deployment) + @derived_image = args[:derived_image] if args.key?(:derived_image) + @discovered = args[:discovered] if args.key?(:discovered) + @installation = args[:installation] if args.key?(:installation) + @kind = args[:kind] if args.key?(:kind) + @name = args[:name] if args.key?(:name) + @note_name = args[:note_name] if args.key?(:note_name) + @remediation = args[:remediation] if args.key?(:remediation) + @resource = args[:resource] if args.key?(:resource) + @update_time = args[:update_time] if args.key?(:update_time) + @vulnerability = args[:vulnerability] if args.key?(:vulnerability) + end + end + + # This represents a particular package that is distributed over various + # channels. E.g., glibc (aka libc6) is distributed by many, at various + # versions. + class Package + include Google::Apis::Core::Hashable + + # The various channels by which a package is distributed. + # Corresponds to the JSON property `distribution` + # @return [Array] + attr_accessor :distribution + + # Required. Immutable. The name of the package. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @distribution = args[:distribution] if args.key?(:distribution) + @name = args[:name] if args.key?(:name) + end + end + + # This message wraps a location affected by a vulnerability and its + # associated fix (if one is available). + class PackageIssue + include Google::Apis::Core::Hashable + + # The location of the vulnerability. + # Corresponds to the JSON property `affectedLocation` + # @return [Google::Apis::ContaineranalysisV1beta1::VulnerabilityLocation] + attr_accessor :affected_location + + # The location of the vulnerability. + # Corresponds to the JSON property `fixedLocation` + # @return [Google::Apis::ContaineranalysisV1beta1::VulnerabilityLocation] + attr_accessor :fixed_location + + # The severity (e.g., distro assigned severity) for this vulnerability. + # Corresponds to the JSON property `severityName` + # @return [String] + attr_accessor :severity_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @affected_location = args[:affected_location] if args.key?(:affected_location) + @fixed_location = args[:fixed_location] if args.key?(:fixed_location) + @severity_name = args[:severity_name] if args.key?(:severity_name) + end + end + + # An attestation wrapper with a PGP-compatible signature. This message only + # supports `ATTACHED` signatures, where the payload that is signed is included + # alongside the signature itself in the same file. + class PgpSignedAttestation + include Google::Apis::Core::Hashable + + # Type (for example schema) of the attestation payload that was signed. + # The verifier must ensure that the provided type is one that the verifier + # supports, and that the attestation payload is a valid instantiation of that + # type (for example by validating a JSON schema). + # Corresponds to the JSON property `contentType` + # @return [String] + attr_accessor :content_type + + # The cryptographic fingerprint of the key used to generate the signature, + # as output by, e.g. `gpg --list-keys`. This should be the version 4, full + # 160-bit fingerprint, expressed as a 40 character hexidecimal string. See + # https://tools.ietf.org/html/rfc4880#section-12.2 for details. + # Implementations may choose to acknowledge "LONG", "SHORT", or other + # abbreviated key IDs, but only the full fingerprint is guaranteed to work. + # In gpg, the full fingerprint can be retrieved from the `fpr` field + # returned when calling --list-keys with --with-colons. For example: + # ``` + # gpg --with-colons --with-fingerprint --force-v4-certs \ + # --list-keys attester@example.com + # tru::1:1513631572:0:3:1:5 + # pub:...... + # fpr:::::::::24FF6481B76AC91E66A00AC657A93A81EF3AE6FB: + # ``` + # Above, the fingerprint is `24FF6481B76AC91E66A00AC657A93A81EF3AE6FB`. + # Corresponds to the JSON property `pgpKeyId` + # @return [String] + attr_accessor :pgp_key_id + + # Required. The raw content of the signature, as output by GNU Privacy Guard + # (GPG) or equivalent. Since this message only supports attached signatures, + # the payload that was signed must be attached. While the signature format + # supported is dependent on the verification implementation, currently only + # ASCII-armored (`--armor` to gpg), non-clearsigned (`--sign` rather than + # `--clearsign` to gpg) are supported. Concretely, `gpg --sign --armor + # --output=signature.gpg payload.json` will create the signature content + # expected in this field in `signature.gpg` for the `payload.json` + # attestation payload. + # Corresponds to the JSON property `signature` + # @return [String] + attr_accessor :signature + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @content_type = args[:content_type] if args.key?(:content_type) + @pgp_key_id = args[:pgp_key_id] if args.key?(:pgp_key_id) + @signature = args[:signature] if args.key?(:signature) + end + end + + # Defines an Identity and Access Management (IAM) policy. It is used to + # specify access control policies for Cloud Platform resources. + # A `Policy` consists of a list of `bindings`. A `binding` binds a list of + # `members` to a `role`, where the members can be user accounts, Google groups, + # Google domains, and service accounts. A `role` is a named list of permissions + # defined by IAM. + # **JSON Example** + # ` + # "bindings": [ + # ` + # "role": "roles/owner", + # "members": [ + # "user:mike@example.com", + # "group:admins@example.com", + # "domain:google.com", + # "serviceAccount:my-other-app@appspot.gserviceaccount.com" + # ] + # `, + # ` + # "role": "roles/viewer", + # "members": ["user:sean@example.com"] + # ` + # ] + # ` + # **YAML Example** + # bindings: + # - members: + # - user:mike@example.com + # - group:admins@example.com + # - domain:google.com + # - serviceAccount:my-other-app@appspot.gserviceaccount.com + # role: roles/owner + # - members: + # - user:sean@example.com + # role: roles/viewer + # For a description of IAM and its features, see the + # [IAM developer's guide](https://cloud.google.com/iam/docs). + class Policy + include Google::Apis::Core::Hashable + + # Specifies cloud audit logging configuration for this policy. + # Corresponds to the JSON property `auditConfigs` + # @return [Array] + attr_accessor :audit_configs + + # Associates a list of `members` to a `role`. + # `bindings` with no members will result in an error. + # Corresponds to the JSON property `bindings` + # @return [Array] + attr_accessor :bindings + + # `etag` is used for optimistic concurrency control as a way to help + # prevent simultaneous updates of a policy from overwriting each other. + # It is strongly suggested that systems make use of the `etag` in the + # read-modify-write cycle to perform policy updates in order to avoid race + # conditions: An `etag` is returned in the response to `getIamPolicy`, and + # systems are expected to put that etag in the request to `setIamPolicy` to + # ensure that their change will be applied to the same version of the policy. + # If no `etag` is provided in the call to `setIamPolicy`, then the existing + # policy is overwritten blindly. + # Corresponds to the JSON property `etag` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :etag + + # Deprecated. + # Corresponds to the JSON property `version` + # @return [Fixnum] + attr_accessor :version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @audit_configs = args[:audit_configs] if args.key?(:audit_configs) + @bindings = args[:bindings] if args.key?(:bindings) + @etag = args[:etag] if args.key?(:etag) + @version = args[:version] if args.key?(:version) + end + end + + # Selects a repo using a Google Cloud Platform project ID (e.g., + # winged-cargo-31) and a repo name within that project. + class ProjectRepoId + include Google::Apis::Core::Hashable + + # The ID of the project. + # Corresponds to the JSON property `projectId` + # @return [String] + attr_accessor :project_id + + # The name of the repo. Leave empty for the default repo. + # Corresponds to the JSON property `repoName` + # @return [String] + attr_accessor :repo_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @project_id = args[:project_id] if args.key?(:project_id) + @repo_name = args[:repo_name] if args.key?(:repo_name) + end + end + + # Metadata for any related URL information. + class RelatedUrl + include Google::Apis::Core::Hashable + + # Label to describe usage of the URL. + # Corresponds to the JSON property `label` + # @return [String] + attr_accessor :label + + # Specific URL associated with the resource. + # Corresponds to the JSON property `url` + # @return [String] + attr_accessor :url + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @label = args[:label] if args.key?(:label) + @url = args[:url] if args.key?(:url) + end + end + + # A unique identifier for a Cloud Repo. + class RepoId + include Google::Apis::Core::Hashable + + # Selects a repo using a Google Cloud Platform project ID (e.g., + # winged-cargo-31) and a repo name within that project. + # Corresponds to the JSON property `projectRepoId` + # @return [Google::Apis::ContaineranalysisV1beta1::ProjectRepoId] + attr_accessor :project_repo_id + + # A server-assigned, globally unique identifier. + # Corresponds to the JSON property `uid` + # @return [String] + attr_accessor :uid + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @project_repo_id = args[:project_repo_id] if args.key?(:project_repo_id) + @uid = args[:uid] if args.key?(:uid) + end + end + + # An entity that can have metadata. For example, a Docker image. + class Resource + include Google::Apis::Core::Hashable + + # Container message for hash values. + # Corresponds to the JSON property `contentHash` + # @return [Google::Apis::ContaineranalysisV1beta1::HashProp] + attr_accessor :content_hash + + # The name of the resource. For example, the name of a Docker image - + # "Debian". + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Required. The unique URI of the resource. For example, + # `https://gcr.io/project/image@sha256:foo` for a Docker image. + # Corresponds to the JSON property `uri` + # @return [String] + attr_accessor :uri + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @content_hash = args[:content_hash] if args.key?(:content_hash) + @name = args[:name] if args.key?(:name) + @uri = args[:uri] if args.key?(:uri) + end + end + + # A scan configuration specifies whether Cloud components in a project have a + # particular type of analysis being run. For example, it can configure whether + # vulnerability scanning is being done on Docker images or not. + class ScanConfig + include Google::Apis::Core::Hashable + + # Output only. The time this scan config was created. + # Corresponds to the JSON property `createTime` + # @return [String] + attr_accessor :create_time + + # Output only. A human-readable description of what the scan configuration + # does. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Whether the scan is enabled. + # Corresponds to the JSON property `enabled` + # @return [Boolean] + attr_accessor :enabled + alias_method :enabled?, :enabled + + # Output only. The name of the scan configuration in the form of + # `projects/[PROJECT_ID]/scanConfigs/[SCAN_CONFIG_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Output only. The time this scan config was last updated. + # Corresponds to the JSON property `updateTime` + # @return [String] + attr_accessor :update_time + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @create_time = args[:create_time] if args.key?(:create_time) + @description = args[:description] if args.key?(:description) + @enabled = args[:enabled] if args.key?(:enabled) + @name = args[:name] if args.key?(:name) + @update_time = args[:update_time] if args.key?(:update_time) + end + end + + # Request message for `SetIamPolicy` method. + class SetIamPolicyRequest + include Google::Apis::Core::Hashable + + # Defines an Identity and Access Management (IAM) policy. It is used to + # specify access control policies for Cloud Platform resources. + # A `Policy` consists of a list of `bindings`. A `binding` binds a list of + # `members` to a `role`, where the members can be user accounts, Google groups, + # Google domains, and service accounts. A `role` is a named list of permissions + # defined by IAM. + # **JSON Example** + # ` + # "bindings": [ + # ` + # "role": "roles/owner", + # "members": [ + # "user:mike@example.com", + # "group:admins@example.com", + # "domain:google.com", + # "serviceAccount:my-other-app@appspot.gserviceaccount.com" + # ] + # `, + # ` + # "role": "roles/viewer", + # "members": ["user:sean@example.com"] + # ` + # ] + # ` + # **YAML Example** + # bindings: + # - members: + # - user:mike@example.com + # - group:admins@example.com + # - domain:google.com + # - serviceAccount:my-other-app@appspot.gserviceaccount.com + # role: roles/owner + # - members: + # - user:sean@example.com + # role: roles/viewer + # For a description of IAM and its features, see the + # [IAM developer's guide](https://cloud.google.com/iam/docs). + # Corresponds to the JSON property `policy` + # @return [Google::Apis::ContaineranalysisV1beta1::Policy] + attr_accessor :policy + + # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + # the fields in the mask will be modified. If no mask is provided, the + # following default mask is used: + # paths: "bindings, etag" + # This field is only used by Cloud IAM. + # Corresponds to the JSON property `updateMask` + # @return [String] + attr_accessor :update_mask + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @policy = args[:policy] if args.key?(:policy) + @update_mask = args[:update_mask] if args.key?(:update_mask) + end + end + + # Source describes the location of the source used for the build. + class Source + include Google::Apis::Core::Hashable + + # If provided, some of the source code used for the build may be found in + # these locations, in the case where the source repository had multiple + # remotes or submodules. This list will not include the context specified in + # the context field. + # Corresponds to the JSON property `additionalContexts` + # @return [Array] + attr_accessor :additional_contexts + + # If provided, the input binary artifacts for the build came from this + # location. + # Corresponds to the JSON property `artifactStorageSourceUri` + # @return [String] + attr_accessor :artifact_storage_source_uri + + # A SourceContext is a reference to a tree of files. A SourceContext together + # with a path point to a unique revision of a single file or directory. + # Corresponds to the JSON property `context` + # @return [Google::Apis::ContaineranalysisV1beta1::SourceContext] + attr_accessor :context + + # Hash(es) of the build source, which can be used to verify that the original + # source integrity was maintained in the build. + # The keys to this map are file paths used as build source and the values + # contain the hash values for those files. + # If the build source came in a single package such as a gzipped tarfile + # (.tar.gz), the FileHash will be for the single path to that file. + # Corresponds to the JSON property `fileHashes` + # @return [Hash] + attr_accessor :file_hashes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @additional_contexts = args[:additional_contexts] if args.key?(:additional_contexts) + @artifact_storage_source_uri = args[:artifact_storage_source_uri] if args.key?(:artifact_storage_source_uri) + @context = args[:context] if args.key?(:context) + @file_hashes = args[:file_hashes] if args.key?(:file_hashes) + end + end + + # A SourceContext is a reference to a tree of files. A SourceContext together + # with a path point to a unique revision of a single file or directory. + class SourceContext + include Google::Apis::Core::Hashable + + # A CloudRepoSourceContext denotes a particular revision in a Google Cloud + # Source Repo. + # Corresponds to the JSON property `cloudRepo` + # @return [Google::Apis::ContaineranalysisV1beta1::CloudRepoSourceContext] + attr_accessor :cloud_repo + + # A SourceContext referring to a Gerrit project. + # Corresponds to the JSON property `gerrit` + # @return [Google::Apis::ContaineranalysisV1beta1::GerritSourceContext] + attr_accessor :gerrit + + # A GitSourceContext denotes a particular revision in a third party Git + # repository (e.g., GitHub). + # Corresponds to the JSON property `git` + # @return [Google::Apis::ContaineranalysisV1beta1::GitSourceContext] + attr_accessor :git + + # Labels with user defined metadata. + # Corresponds to the JSON property `labels` + # @return [Hash] + attr_accessor :labels + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cloud_repo = args[:cloud_repo] if args.key?(:cloud_repo) + @gerrit = args[:gerrit] if args.key?(:gerrit) + @git = args[:git] if args.key?(:git) + @labels = args[:labels] if args.key?(:labels) + end + end + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + class Status + include Google::Apis::Core::Hashable + + # The status code, which should be an enum value of google.rpc.Code. + # Corresponds to the JSON property `code` + # @return [Fixnum] + attr_accessor :code + + # A list of messages that carry the error details. There is a common set of + # message types for APIs to use. + # Corresponds to the JSON property `details` + # @return [Array>] + attr_accessor :details + + # 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. + # Corresponds to the JSON property `message` + # @return [String] + attr_accessor :message + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @code = args[:code] if args.key?(:code) + @details = args[:details] if args.key?(:details) + @message = args[:message] if args.key?(:message) + end + end + + # Request message for `TestIamPermissions` method. + class TestIamPermissionsRequest + include Google::Apis::Core::Hashable + + # The set of permissions to check for the `resource`. Permissions with + # wildcards (such as '*' or 'storage.*') are not allowed. For more + # information see + # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + # Corresponds to the JSON property `permissions` + # @return [Array] + attr_accessor :permissions + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @permissions = args[:permissions] if args.key?(:permissions) + end + end + + # Response message for `TestIamPermissions` method. + class TestIamPermissionsResponse + include Google::Apis::Core::Hashable + + # A subset of `TestPermissionsRequest.permissions` that the caller is + # allowed. + # Corresponds to the JSON property `permissions` + # @return [Array] + attr_accessor :permissions + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @permissions = args[:permissions] if args.key?(:permissions) + end + end + + # Version contains structured information about the version of a package. + class Version + include Google::Apis::Core::Hashable + + # Used to correct mistakes in the version numbering scheme. + # Corresponds to the JSON property `epoch` + # @return [Fixnum] + attr_accessor :epoch + + # Required. Distinguishes between sentinel MIN/MAX versions and normal + # versions. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # Required only when version kind is NORMAL. The main part of the version + # name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The iteration of the package build from the above version. + # Corresponds to the JSON property `revision` + # @return [String] + attr_accessor :revision + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @epoch = args[:epoch] if args.key?(:epoch) + @kind = args[:kind] if args.key?(:kind) + @name = args[:name] if args.key?(:name) + @revision = args[:revision] if args.key?(:revision) + end + end + + # Vulnerability provides metadata about a security vulnerability in a Note. + class Vulnerability + include Google::Apis::Core::Hashable + + # The CVSS score for this vulnerability. + # Corresponds to the JSON property `cvssScore` + # @return [Float] + attr_accessor :cvss_score + + # All information about the package to specifically identify this + # vulnerability. One entry per (version range and cpe_uri) the package + # vulnerability has manifested in. + # Corresponds to the JSON property `details` + # @return [Array] + attr_accessor :details + + # Note provider assigned impact of the vulnerability. + # Corresponds to the JSON property `severity` + # @return [String] + attr_accessor :severity + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cvss_score = args[:cvss_score] if args.key?(:cvss_score) + @details = args[:details] if args.key?(:details) + @severity = args[:severity] if args.key?(:severity) + end + end + + # The location of the vulnerability. + class VulnerabilityLocation + include Google::Apis::Core::Hashable + + # Required. The CPE URI in [cpe format](https://cpe.mitre.org/specification/) + # format. Examples include distro or storage location for vulnerable jar. + # Corresponds to the JSON property `cpeUri` + # @return [String] + attr_accessor :cpe_uri + + # Required. The package being described. + # Corresponds to the JSON property `package` + # @return [String] + attr_accessor :package + + # Version contains structured information about the version of a package. + # Corresponds to the JSON property `version` + # @return [Google::Apis::ContaineranalysisV1beta1::Version] + attr_accessor :version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri) + @package = args[:package] if args.key?(:package) + @version = args[:version] if args.key?(:version) + end + end + + # A summary of how many vulnerability occurrences there are per resource and + # severity type. + class VulnerabilityOccurrencesSummary + include Google::Apis::Core::Hashable + + # A listing by resource of the number of fixable and total vulnerabilities. + # Corresponds to the JSON property `counts` + # @return [Array] + attr_accessor :counts + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @counts = args[:counts] if args.key?(:counts) + end + end + end + end +end diff --git a/generated/google/apis/containeranalysis_v1beta1/representations.rb b/generated/google/apis/containeranalysis_v1beta1/representations.rb new file mode 100644 index 000000000..973341c19 --- /dev/null +++ b/generated/google/apis/containeranalysis_v1beta1/representations.rb @@ -0,0 +1,1152 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module ContaineranalysisV1beta1 + + class AliasContext + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Artifact + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Attestation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuditConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AuditLogConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Authority + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Basis + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BatchCreateNotesRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BatchCreateNotesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BatchCreateOccurrencesRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BatchCreateOccurrencesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Binding + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Build + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildProvenance + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildSignature + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class CloudRepoSourceContext + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Command + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Deployable + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Deployment + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Derived + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Detail + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Details + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Discovered + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Discovery + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Distribution + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Empty + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Expr + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class FileHashes + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Fingerprint + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class FixableTotalByDigest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GerritSourceContext + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GetIamPolicyRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GitSourceContext + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GrafeasV1beta1BuildDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GrafeasV1beta1DeploymentDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GrafeasV1beta1DiscoveryDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GrafeasV1beta1ImageDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GrafeasV1beta1PackageDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GrafeasV1beta1VulnerabilityDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class HashProp + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Hint + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Installation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Layer + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListNoteOccurrencesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListNotesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListOccurrencesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListScanConfigsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Location + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Note + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Occurrence + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Package + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class PackageIssue + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class PgpSignedAttestation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Policy + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ProjectRepoId + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class RelatedUrl + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class RepoId + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Resource + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ScanConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SetIamPolicyRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Source + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SourceContext + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Status + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class TestIamPermissionsRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class TestIamPermissionsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Version + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Vulnerability + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class VulnerabilityLocation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class VulnerabilityOccurrencesSummary + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class AliasContext + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :kind, as: 'kind' + property :name, as: 'name' + end + end + + class Artifact + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :checksum, as: 'checksum' + property :id, as: 'id' + collection :names, as: 'names' + end + end + + class Attestation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :pgp_signed_attestation, as: 'pgpSignedAttestation', class: Google::Apis::ContaineranalysisV1beta1::PgpSignedAttestation, decorator: Google::Apis::ContaineranalysisV1beta1::PgpSignedAttestation::Representation + + end + end + + class AuditConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :audit_log_configs, as: 'auditLogConfigs', class: Google::Apis::ContaineranalysisV1beta1::AuditLogConfig, decorator: Google::Apis::ContaineranalysisV1beta1::AuditLogConfig::Representation + + property :service, as: 'service' + end + end + + class AuditLogConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :exempted_members, as: 'exemptedMembers' + property :log_type, as: 'logType' + end + end + + class Authority + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :hint, as: 'hint', class: Google::Apis::ContaineranalysisV1beta1::Hint, decorator: Google::Apis::ContaineranalysisV1beta1::Hint::Representation + + end + end + + class Basis + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :fingerprint, as: 'fingerprint', class: Google::Apis::ContaineranalysisV1beta1::Fingerprint, decorator: Google::Apis::ContaineranalysisV1beta1::Fingerprint::Representation + + property :resource_url, as: 'resourceUrl' + end + end + + class BatchCreateNotesRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + hash :notes, as: 'notes', class: Google::Apis::ContaineranalysisV1beta1::Note, decorator: Google::Apis::ContaineranalysisV1beta1::Note::Representation + + end + end + + class BatchCreateNotesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :notes, as: 'notes', class: Google::Apis::ContaineranalysisV1beta1::Note, decorator: Google::Apis::ContaineranalysisV1beta1::Note::Representation + + end + end + + class BatchCreateOccurrencesRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :occurrences, as: 'occurrences', class: Google::Apis::ContaineranalysisV1beta1::Occurrence, decorator: Google::Apis::ContaineranalysisV1beta1::Occurrence::Representation + + end + end + + class BatchCreateOccurrencesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :occurrences, as: 'occurrences', class: Google::Apis::ContaineranalysisV1beta1::Occurrence, decorator: Google::Apis::ContaineranalysisV1beta1::Occurrence::Representation + + end + end + + class Binding + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :condition, as: 'condition', class: Google::Apis::ContaineranalysisV1beta1::Expr, decorator: Google::Apis::ContaineranalysisV1beta1::Expr::Representation + + collection :members, as: 'members' + property :role, as: 'role' + end + end + + class Build + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :builder_version, as: 'builderVersion' + property :signature, as: 'signature', class: Google::Apis::ContaineranalysisV1beta1::BuildSignature, decorator: Google::Apis::ContaineranalysisV1beta1::BuildSignature::Representation + + end + end + + class BuildProvenance + # @private + class Representation < Google::Apis::Core::JsonRepresentation + hash :build_options, as: 'buildOptions' + property :builder_version, as: 'builderVersion' + collection :built_artifacts, as: 'builtArtifacts', class: Google::Apis::ContaineranalysisV1beta1::Artifact, decorator: Google::Apis::ContaineranalysisV1beta1::Artifact::Representation + + collection :commands, as: 'commands', class: Google::Apis::ContaineranalysisV1beta1::Command, decorator: Google::Apis::ContaineranalysisV1beta1::Command::Representation + + property :create_time, as: 'createTime' + property :creator, as: 'creator' + property :end_time, as: 'endTime' + property :id, as: 'id' + property :logs_uri, as: 'logsUri' + property :project_id, as: 'projectId' + property :source_provenance, as: 'sourceProvenance', class: Google::Apis::ContaineranalysisV1beta1::Source, decorator: Google::Apis::ContaineranalysisV1beta1::Source::Representation + + property :start_time, as: 'startTime' + property :trigger_id, as: 'triggerId' + end + end + + class BuildSignature + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :key_id, as: 'keyId' + property :key_type, as: 'keyType' + property :public_key, as: 'publicKey' + property :signature, :base64 => true, as: 'signature' + end + end + + class CloudRepoSourceContext + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :alias_context, as: 'aliasContext', class: Google::Apis::ContaineranalysisV1beta1::AliasContext, decorator: Google::Apis::ContaineranalysisV1beta1::AliasContext::Representation + + property :repo_id, as: 'repoId', class: Google::Apis::ContaineranalysisV1beta1::RepoId, decorator: Google::Apis::ContaineranalysisV1beta1::RepoId::Representation + + property :revision_id, as: 'revisionId' + end + end + + class Command + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :args, as: 'args' + property :dir, as: 'dir' + collection :env, as: 'env' + property :id, as: 'id' + property :name, as: 'name' + collection :wait_for, as: 'waitFor' + end + end + + class Deployable + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :resource_uri, as: 'resourceUri' + end + end + + class Deployment + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :address, as: 'address' + property :config, as: 'config' + property :deploy_time, as: 'deployTime' + property :platform, as: 'platform' + collection :resource_uri, as: 'resourceUri' + property :undeploy_time, as: 'undeployTime' + property :user_email, as: 'userEmail' + end + end + + class Derived + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :base_resource_url, as: 'baseResourceUrl' + property :distance, as: 'distance' + property :fingerprint, as: 'fingerprint', class: Google::Apis::ContaineranalysisV1beta1::Fingerprint, decorator: Google::Apis::ContaineranalysisV1beta1::Fingerprint::Representation + + collection :layer_info, as: 'layerInfo', class: Google::Apis::ContaineranalysisV1beta1::Layer, decorator: Google::Apis::ContaineranalysisV1beta1::Layer::Representation + + end + end + + class Detail + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cpe_uri, as: 'cpeUri' + property :description, as: 'description' + property :fixed_location, as: 'fixedLocation', class: Google::Apis::ContaineranalysisV1beta1::VulnerabilityLocation, decorator: Google::Apis::ContaineranalysisV1beta1::VulnerabilityLocation::Representation + + property :is_obsolete, as: 'isObsolete' + property :max_affected_version, as: 'maxAffectedVersion', class: Google::Apis::ContaineranalysisV1beta1::Version, decorator: Google::Apis::ContaineranalysisV1beta1::Version::Representation + + property :min_affected_version, as: 'minAffectedVersion', class: Google::Apis::ContaineranalysisV1beta1::Version, decorator: Google::Apis::ContaineranalysisV1beta1::Version::Representation + + property :package, as: 'package' + property :package_type, as: 'packageType' + property :severity_name, as: 'severityName' + end + end + + class Details + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :attestation, as: 'attestation', class: Google::Apis::ContaineranalysisV1beta1::Attestation, decorator: Google::Apis::ContaineranalysisV1beta1::Attestation::Representation + + end + end + + class Discovered + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :analysis_status, as: 'analysisStatus' + property :analysis_status_error, as: 'analysisStatusError', class: Google::Apis::ContaineranalysisV1beta1::Status, decorator: Google::Apis::ContaineranalysisV1beta1::Status::Representation + + property :continuous_analysis, as: 'continuousAnalysis' + property :last_analysis_time, as: 'lastAnalysisTime' + end + end + + class Discovery + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :analysis_kind, as: 'analysisKind' + end + end + + class Distribution + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :architecture, as: 'architecture' + property :cpe_uri, as: 'cpeUri' + property :description, as: 'description' + property :latest_version, as: 'latestVersion', class: Google::Apis::ContaineranalysisV1beta1::Version, decorator: Google::Apis::ContaineranalysisV1beta1::Version::Representation + + property :maintainer, as: 'maintainer' + property :url, as: 'url' + end + end + + class Empty + # @private + class Representation < Google::Apis::Core::JsonRepresentation + end + end + + class Expr + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :expression, as: 'expression' + property :location, as: 'location' + property :title, as: 'title' + end + end + + class FileHashes + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :file_hash, as: 'fileHash', class: Google::Apis::ContaineranalysisV1beta1::HashProp, decorator: Google::Apis::ContaineranalysisV1beta1::HashProp::Representation + + end + end + + class Fingerprint + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :v1_name, as: 'v1Name' + collection :v2_blob, as: 'v2Blob' + property :v2_name, as: 'v2Name' + end + end + + class FixableTotalByDigest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :fixable_count, :numeric_string => true, as: 'fixableCount' + property :resource, as: 'resource', class: Google::Apis::ContaineranalysisV1beta1::Resource, decorator: Google::Apis::ContaineranalysisV1beta1::Resource::Representation + + property :severity, as: 'severity' + property :total_count, :numeric_string => true, as: 'totalCount' + end + end + + class GerritSourceContext + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :alias_context, as: 'aliasContext', class: Google::Apis::ContaineranalysisV1beta1::AliasContext, decorator: Google::Apis::ContaineranalysisV1beta1::AliasContext::Representation + + property :gerrit_project, as: 'gerritProject' + property :host_uri, as: 'hostUri' + property :revision_id, as: 'revisionId' + end + end + + class GetIamPolicyRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + end + end + + class GitSourceContext + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :revision_id, as: 'revisionId' + property :url, as: 'url' + end + end + + class GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :create_time, as: 'createTime' + property :end_time, as: 'endTime' + end + end + + class GrafeasV1beta1BuildDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :provenance, as: 'provenance', class: Google::Apis::ContaineranalysisV1beta1::BuildProvenance, decorator: Google::Apis::ContaineranalysisV1beta1::BuildProvenance::Representation + + property :provenance_bytes, as: 'provenanceBytes' + end + end + + class GrafeasV1beta1DeploymentDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :deployment, as: 'deployment', class: Google::Apis::ContaineranalysisV1beta1::Deployment, decorator: Google::Apis::ContaineranalysisV1beta1::Deployment::Representation + + end + end + + class GrafeasV1beta1DiscoveryDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :discovered, as: 'discovered', class: Google::Apis::ContaineranalysisV1beta1::Discovered, decorator: Google::Apis::ContaineranalysisV1beta1::Discovered::Representation + + end + end + + class GrafeasV1beta1ImageDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :derived_image, as: 'derivedImage', class: Google::Apis::ContaineranalysisV1beta1::Derived, decorator: Google::Apis::ContaineranalysisV1beta1::Derived::Representation + + end + end + + class GrafeasV1beta1PackageDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :installation, as: 'installation', class: Google::Apis::ContaineranalysisV1beta1::Installation, decorator: Google::Apis::ContaineranalysisV1beta1::Installation::Representation + + end + end + + class GrafeasV1beta1VulnerabilityDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cvss_score, as: 'cvssScore' + property :long_description, as: 'longDescription' + collection :package_issue, as: 'packageIssue', class: Google::Apis::ContaineranalysisV1beta1::PackageIssue, decorator: Google::Apis::ContaineranalysisV1beta1::PackageIssue::Representation + + collection :related_urls, as: 'relatedUrls', class: Google::Apis::ContaineranalysisV1beta1::RelatedUrl, decorator: Google::Apis::ContaineranalysisV1beta1::RelatedUrl::Representation + + property :severity, as: 'severity' + property :short_description, as: 'shortDescription' + property :type, as: 'type' + end + end + + class HashProp + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :type, as: 'type' + property :value, :base64 => true, as: 'value' + end + end + + class Hint + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :human_readable_name, as: 'humanReadableName' + end + end + + class Installation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :location, as: 'location', class: Google::Apis::ContaineranalysisV1beta1::Location, decorator: Google::Apis::ContaineranalysisV1beta1::Location::Representation + + property :name, as: 'name' + end + end + + class Layer + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :arguments, as: 'arguments' + property :directive, as: 'directive' + end + end + + class ListNoteOccurrencesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :next_page_token, as: 'nextPageToken' + collection :occurrences, as: 'occurrences', class: Google::Apis::ContaineranalysisV1beta1::Occurrence, decorator: Google::Apis::ContaineranalysisV1beta1::Occurrence::Representation + + end + end + + class ListNotesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :next_page_token, as: 'nextPageToken' + collection :notes, as: 'notes', class: Google::Apis::ContaineranalysisV1beta1::Note, decorator: Google::Apis::ContaineranalysisV1beta1::Note::Representation + + end + end + + class ListOccurrencesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :next_page_token, as: 'nextPageToken' + collection :occurrences, as: 'occurrences', class: Google::Apis::ContaineranalysisV1beta1::Occurrence, decorator: Google::Apis::ContaineranalysisV1beta1::Occurrence::Representation + + end + end + + class ListScanConfigsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :next_page_token, as: 'nextPageToken' + collection :scan_configs, as: 'scanConfigs', class: Google::Apis::ContaineranalysisV1beta1::ScanConfig, decorator: Google::Apis::ContaineranalysisV1beta1::ScanConfig::Representation + + end + end + + class Location + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cpe_uri, as: 'cpeUri' + property :path, as: 'path' + property :version, as: 'version', class: Google::Apis::ContaineranalysisV1beta1::Version, decorator: Google::Apis::ContaineranalysisV1beta1::Version::Representation + + end + end + + class Note + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :attestation_authority, as: 'attestationAuthority', class: Google::Apis::ContaineranalysisV1beta1::Authority, decorator: Google::Apis::ContaineranalysisV1beta1::Authority::Representation + + property :base_image, as: 'baseImage', class: Google::Apis::ContaineranalysisV1beta1::Basis, decorator: Google::Apis::ContaineranalysisV1beta1::Basis::Representation + + property :build, as: 'build', class: Google::Apis::ContaineranalysisV1beta1::Build, decorator: Google::Apis::ContaineranalysisV1beta1::Build::Representation + + property :create_time, as: 'createTime' + property :deployable, as: 'deployable', class: Google::Apis::ContaineranalysisV1beta1::Deployable, decorator: Google::Apis::ContaineranalysisV1beta1::Deployable::Representation + + property :discovery, as: 'discovery', class: Google::Apis::ContaineranalysisV1beta1::Discovery, decorator: Google::Apis::ContaineranalysisV1beta1::Discovery::Representation + + property :expiration_time, as: 'expirationTime' + property :kind, as: 'kind' + property :long_description, as: 'longDescription' + property :name, as: 'name' + property :package, as: 'package', class: Google::Apis::ContaineranalysisV1beta1::Package, decorator: Google::Apis::ContaineranalysisV1beta1::Package::Representation + + collection :related_note_names, as: 'relatedNoteNames' + collection :related_url, as: 'relatedUrl', class: Google::Apis::ContaineranalysisV1beta1::RelatedUrl, decorator: Google::Apis::ContaineranalysisV1beta1::RelatedUrl::Representation + + property :short_description, as: 'shortDescription' + property :update_time, as: 'updateTime' + property :vulnerability, as: 'vulnerability', class: Google::Apis::ContaineranalysisV1beta1::Vulnerability, decorator: Google::Apis::ContaineranalysisV1beta1::Vulnerability::Representation + + end + end + + class Occurrence + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :attestation, as: 'attestation', class: Google::Apis::ContaineranalysisV1beta1::Details, decorator: Google::Apis::ContaineranalysisV1beta1::Details::Representation + + property :build, as: 'build', class: Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1BuildDetails, decorator: Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1BuildDetails::Representation + + property :create_time, as: 'createTime' + property :deployment, as: 'deployment', class: Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1DeploymentDetails, decorator: Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1DeploymentDetails::Representation + + property :derived_image, as: 'derivedImage', class: Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1ImageDetails, decorator: Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1ImageDetails::Representation + + property :discovered, as: 'discovered', class: Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1DiscoveryDetails, decorator: Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1DiscoveryDetails::Representation + + property :installation, as: 'installation', class: Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1PackageDetails, decorator: Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1PackageDetails::Representation + + property :kind, as: 'kind' + property :name, as: 'name' + property :note_name, as: 'noteName' + property :remediation, as: 'remediation' + property :resource, as: 'resource', class: Google::Apis::ContaineranalysisV1beta1::Resource, decorator: Google::Apis::ContaineranalysisV1beta1::Resource::Representation + + property :update_time, as: 'updateTime' + property :vulnerability, as: 'vulnerability', class: Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1VulnerabilityDetails, decorator: Google::Apis::ContaineranalysisV1beta1::GrafeasV1beta1VulnerabilityDetails::Representation + + end + end + + class Package + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :distribution, as: 'distribution', class: Google::Apis::ContaineranalysisV1beta1::Distribution, decorator: Google::Apis::ContaineranalysisV1beta1::Distribution::Representation + + property :name, as: 'name' + end + end + + class PackageIssue + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :affected_location, as: 'affectedLocation', class: Google::Apis::ContaineranalysisV1beta1::VulnerabilityLocation, decorator: Google::Apis::ContaineranalysisV1beta1::VulnerabilityLocation::Representation + + property :fixed_location, as: 'fixedLocation', class: Google::Apis::ContaineranalysisV1beta1::VulnerabilityLocation, decorator: Google::Apis::ContaineranalysisV1beta1::VulnerabilityLocation::Representation + + property :severity_name, as: 'severityName' + end + end + + class PgpSignedAttestation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :content_type, as: 'contentType' + property :pgp_key_id, as: 'pgpKeyId' + property :signature, as: 'signature' + end + end + + class Policy + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :audit_configs, as: 'auditConfigs', class: Google::Apis::ContaineranalysisV1beta1::AuditConfig, decorator: Google::Apis::ContaineranalysisV1beta1::AuditConfig::Representation + + collection :bindings, as: 'bindings', class: Google::Apis::ContaineranalysisV1beta1::Binding, decorator: Google::Apis::ContaineranalysisV1beta1::Binding::Representation + + property :etag, :base64 => true, as: 'etag' + property :version, as: 'version' + end + end + + class ProjectRepoId + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :project_id, as: 'projectId' + property :repo_name, as: 'repoName' + end + end + + class RelatedUrl + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :label, as: 'label' + property :url, as: 'url' + end + end + + class RepoId + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :project_repo_id, as: 'projectRepoId', class: Google::Apis::ContaineranalysisV1beta1::ProjectRepoId, decorator: Google::Apis::ContaineranalysisV1beta1::ProjectRepoId::Representation + + property :uid, as: 'uid' + end + end + + class Resource + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :content_hash, as: 'contentHash', class: Google::Apis::ContaineranalysisV1beta1::HashProp, decorator: Google::Apis::ContaineranalysisV1beta1::HashProp::Representation + + property :name, as: 'name' + property :uri, as: 'uri' + end + end + + class ScanConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :create_time, as: 'createTime' + property :description, as: 'description' + property :enabled, as: 'enabled' + property :name, as: 'name' + property :update_time, as: 'updateTime' + end + end + + class SetIamPolicyRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :policy, as: 'policy', class: Google::Apis::ContaineranalysisV1beta1::Policy, decorator: Google::Apis::ContaineranalysisV1beta1::Policy::Representation + + property :update_mask, as: 'updateMask' + end + end + + class Source + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :additional_contexts, as: 'additionalContexts', class: Google::Apis::ContaineranalysisV1beta1::SourceContext, decorator: Google::Apis::ContaineranalysisV1beta1::SourceContext::Representation + + property :artifact_storage_source_uri, as: 'artifactStorageSourceUri' + property :context, as: 'context', class: Google::Apis::ContaineranalysisV1beta1::SourceContext, decorator: Google::Apis::ContaineranalysisV1beta1::SourceContext::Representation + + hash :file_hashes, as: 'fileHashes', class: Google::Apis::ContaineranalysisV1beta1::FileHashes, decorator: Google::Apis::ContaineranalysisV1beta1::FileHashes::Representation + + end + end + + class SourceContext + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cloud_repo, as: 'cloudRepo', class: Google::Apis::ContaineranalysisV1beta1::CloudRepoSourceContext, decorator: Google::Apis::ContaineranalysisV1beta1::CloudRepoSourceContext::Representation + + property :gerrit, as: 'gerrit', class: Google::Apis::ContaineranalysisV1beta1::GerritSourceContext, decorator: Google::Apis::ContaineranalysisV1beta1::GerritSourceContext::Representation + + property :git, as: 'git', class: Google::Apis::ContaineranalysisV1beta1::GitSourceContext, decorator: Google::Apis::ContaineranalysisV1beta1::GitSourceContext::Representation + + hash :labels, as: 'labels' + end + end + + class Status + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :code, as: 'code' + collection :details, as: 'details' + property :message, as: 'message' + end + end + + class TestIamPermissionsRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :permissions, as: 'permissions' + end + end + + class TestIamPermissionsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :permissions, as: 'permissions' + end + end + + class Version + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :epoch, as: 'epoch' + property :kind, as: 'kind' + property :name, as: 'name' + property :revision, as: 'revision' + end + end + + class Vulnerability + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cvss_score, as: 'cvssScore' + collection :details, as: 'details', class: Google::Apis::ContaineranalysisV1beta1::Detail, decorator: Google::Apis::ContaineranalysisV1beta1::Detail::Representation + + property :severity, as: 'severity' + end + end + + class VulnerabilityLocation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cpe_uri, as: 'cpeUri' + property :package, as: 'package' + property :version, as: 'version', class: Google::Apis::ContaineranalysisV1beta1::Version, decorator: Google::Apis::ContaineranalysisV1beta1::Version::Representation + + end + end + + class VulnerabilityOccurrencesSummary + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :counts, as: 'counts', class: Google::Apis::ContaineranalysisV1beta1::FixableTotalByDigest, decorator: Google::Apis::ContaineranalysisV1beta1::FixableTotalByDigest::Representation + + end + end + end + end +end diff --git a/generated/google/apis/containeranalysis_v1beta1/service.rb b/generated/google/apis/containeranalysis_v1beta1/service.rb new file mode 100644 index 000000000..2d99665f7 --- /dev/null +++ b/generated/google/apis/containeranalysis_v1beta1/service.rb @@ -0,0 +1,932 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module ContaineranalysisV1beta1 + # Container Analysis API + # + # An implementation of the Grafeas API, which stores, and enables querying and + # retrieval of critical metadata about all of your software artifacts. + # + # @example + # require 'google/apis/containeranalysis_v1beta1' + # + # Containeranalysis = Google::Apis::ContaineranalysisV1beta1 # Alias the module + # service = Containeranalysis::ContainerAnalysisService.new + # + # @see https://cloud.google.com/container-analysis/api/reference/rest/ + class ContainerAnalysisService < Google::Apis::Core::BaseService + # @return [String] + # 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. + attr_accessor :key + + # @return [String] + # 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. + attr_accessor :quota_user + + def initialize + super('https://containeranalysis.googleapis.com/', '') + @batch_path = 'batch' + end + + # Creates new notes in batch. + # @param [String] parent + # The name of the project in the form of `projects/[PROJECT_ID]`, under which + # the notes are to be created. + # @param [Google::Apis::ContaineranalysisV1beta1::BatchCreateNotesRequest] batch_create_notes_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::BatchCreateNotesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::BatchCreateNotesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def batch_create_notes(parent, batch_create_notes_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta1/{+parent}/notes:batchCreate', options) + command.request_representation = Google::Apis::ContaineranalysisV1beta1::BatchCreateNotesRequest::Representation + command.request_object = batch_create_notes_request_object + command.response_representation = Google::Apis::ContaineranalysisV1beta1::BatchCreateNotesResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::BatchCreateNotesResponse + command.params['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Creates a new note. + # @param [String] parent + # The name of the project in the form of `projects/[PROJECT_ID]`, under which + # the note is to be created. + # @param [Google::Apis::ContaineranalysisV1beta1::Note] note_object + # @param [String] note_id + # The ID to use for this note. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::Note] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::Note] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_project_note(parent, note_object = nil, note_id: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta1/{+parent}/notes', options) + command.request_representation = Google::Apis::ContaineranalysisV1beta1::Note::Representation + command.request_object = note_object + command.response_representation = Google::Apis::ContaineranalysisV1beta1::Note::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::Note + command.params['parent'] = parent unless parent.nil? + command.query['noteId'] = note_id unless note_id.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Deletes the specified note. + # @param [String] name + # The name of the note in the form of + # `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::Empty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::Empty] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def delete_project_note(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:delete, 'v1beta1/{+name}', options) + command.response_representation = Google::Apis::ContaineranalysisV1beta1::Empty::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::Empty + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the specified note. + # @param [String] name + # The name of the note in the form of + # `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::Note] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::Note] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_note(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta1/{+name}', options) + command.response_representation = Google::Apis::ContaineranalysisV1beta1::Note::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::Note + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the access control policy for a note or an occurrence resource. + # Requires `containeranalysis.notes.setIamPolicy` or + # `containeranalysis.occurrences.setIamPolicy` permission if the resource is + # a note or occurrence, respectively. + # The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for + # notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for + # occurrences. + # @param [String] resource + # REQUIRED: The resource for which the policy is being requested. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1beta1::GetIamPolicyRequest] get_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_note_iam_policy(resource, get_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta1/{+resource}:getIamPolicy', options) + command.request_representation = Google::Apis::ContaineranalysisV1beta1::GetIamPolicyRequest::Representation + command.request_object = get_iam_policy_request_object + command.response_representation = Google::Apis::ContaineranalysisV1beta1::Policy::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists notes for the specified project. + # @param [String] parent + # The name of the project to list notes for in the form of + # `projects/[PROJECT_ID]`. + # @param [String] filter + # The filter expression. + # @param [Fixnum] page_size + # Number of notes to return in the list. Must be positive. Max allowed page + # size is 1000. If not specified, page size defaults to 20. + # @param [String] page_token + # Token to provide to skip to a particular spot in the list. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::ListNotesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::ListNotesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_notes(parent, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta1/{+parent}/notes', options) + command.response_representation = Google::Apis::ContaineranalysisV1beta1::ListNotesResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::ListNotesResponse + command.params['parent'] = parent unless parent.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Updates the specified note. + # @param [String] name + # The name of the note in the form of + # `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. + # @param [Google::Apis::ContaineranalysisV1beta1::Note] note_object + # @param [String] update_mask + # The fields to update. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::Note] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::Note] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def patch_project_note(name, note_object = nil, update_mask: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:patch, 'v1beta1/{+name}', options) + command.request_representation = Google::Apis::ContaineranalysisV1beta1::Note::Representation + command.request_object = note_object + command.response_representation = Google::Apis::ContaineranalysisV1beta1::Note::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::Note + command.params['name'] = name unless name.nil? + command.query['updateMask'] = update_mask unless update_mask.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Sets the access control policy on the specified note or occurrence. + # Requires `containeranalysis.notes.setIamPolicy` or + # `containeranalysis.occurrences.setIamPolicy` permission if the resource is + # a note or an occurrence, respectively. + # The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for + # notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for + # occurrences. + # @param [String] resource + # REQUIRED: The resource for which the policy is being specified. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1beta1::SetIamPolicyRequest] set_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def set_note_iam_policy(resource, set_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta1/{+resource}:setIamPolicy', options) + command.request_representation = Google::Apis::ContaineranalysisV1beta1::SetIamPolicyRequest::Representation + command.request_object = set_iam_policy_request_object + command.response_representation = Google::Apis::ContaineranalysisV1beta1::Policy::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Returns the permissions that a caller has on the specified note or + # occurrence. Requires list permission on the project (for example, + # `containeranalysis.notes.list`). + # The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for + # notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for + # occurrences. + # @param [String] resource + # REQUIRED: The resource for which the policy detail is being requested. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1beta1::TestIamPermissionsRequest] test_iam_permissions_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::TestIamPermissionsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::TestIamPermissionsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def test_note_iam_permissions(resource, test_iam_permissions_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta1/{+resource}:testIamPermissions', options) + command.request_representation = Google::Apis::ContaineranalysisV1beta1::TestIamPermissionsRequest::Representation + command.request_object = test_iam_permissions_request_object + command.response_representation = Google::Apis::ContaineranalysisV1beta1::TestIamPermissionsResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::TestIamPermissionsResponse + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists occurrences referencing the specified note. Provider projects can use + # this method to get all occurrences across consumer projects referencing the + # specified note. + # @param [String] name + # The name of the note to list occurrences for in the form of + # `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. + # @param [String] filter + # The filter expression. + # @param [Fixnum] page_size + # Number of occurrences to return in the list. + # @param [String] page_token + # Token to provide to skip to a particular spot in the list. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::ListNoteOccurrencesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::ListNoteOccurrencesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_note_occurrences(name, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta1/{+name}/occurrences', options) + command.response_representation = Google::Apis::ContaineranalysisV1beta1::ListNoteOccurrencesResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::ListNoteOccurrencesResponse + command.params['name'] = name unless name.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Creates new occurrences in batch. + # @param [String] parent + # The name of the project in the form of `projects/[PROJECT_ID]`, under which + # the occurrences are to be created. + # @param [Google::Apis::ContaineranalysisV1beta1::BatchCreateOccurrencesRequest] batch_create_occurrences_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::BatchCreateOccurrencesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::BatchCreateOccurrencesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def batch_create_occurrences(parent, batch_create_occurrences_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta1/{+parent}/occurrences:batchCreate', options) + command.request_representation = Google::Apis::ContaineranalysisV1beta1::BatchCreateOccurrencesRequest::Representation + command.request_object = batch_create_occurrences_request_object + command.response_representation = Google::Apis::ContaineranalysisV1beta1::BatchCreateOccurrencesResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::BatchCreateOccurrencesResponse + command.params['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Creates a new occurrence. + # @param [String] parent + # The name of the project in the form of `projects/[PROJECT_ID]`, under which + # the occurrence is to be created. + # @param [Google::Apis::ContaineranalysisV1beta1::Occurrence] occurrence_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::Occurrence] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::Occurrence] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_project_occurrence(parent, occurrence_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta1/{+parent}/occurrences', options) + command.request_representation = Google::Apis::ContaineranalysisV1beta1::Occurrence::Representation + command.request_object = occurrence_object + command.response_representation = Google::Apis::ContaineranalysisV1beta1::Occurrence::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::Occurrence + command.params['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Deletes the specified occurrence. For example, use this method to delete an + # occurrence when the occurrence is no longer applicable for the given + # resource. + # @param [String] name + # The name of the occurrence in the form of + # `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::Empty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::Empty] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def delete_project_occurrence(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:delete, 'v1beta1/{+name}', options) + command.response_representation = Google::Apis::ContaineranalysisV1beta1::Empty::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::Empty + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the specified occurrence. + # @param [String] name + # The name of the occurrence in the form of + # `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::Occurrence] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::Occurrence] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_occurrence(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta1/{+name}', options) + command.response_representation = Google::Apis::ContaineranalysisV1beta1::Occurrence::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::Occurrence + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the access control policy for a note or an occurrence resource. + # Requires `containeranalysis.notes.setIamPolicy` or + # `containeranalysis.occurrences.setIamPolicy` permission if the resource is + # a note or occurrence, respectively. + # The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for + # notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for + # occurrences. + # @param [String] resource + # REQUIRED: The resource for which the policy is being requested. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1beta1::GetIamPolicyRequest] get_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_occurrence_iam_policy(resource, get_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta1/{+resource}:getIamPolicy', options) + command.request_representation = Google::Apis::ContaineranalysisV1beta1::GetIamPolicyRequest::Representation + command.request_object = get_iam_policy_request_object + command.response_representation = Google::Apis::ContaineranalysisV1beta1::Policy::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the note attached to the specified occurrence. Consumer projects can + # use this method to get a note that belongs to a provider project. + # @param [String] name + # The name of the occurrence in the form of + # `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::Note] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::Note] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_occurrence_notes(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta1/{+name}/notes', options) + command.response_representation = Google::Apis::ContaineranalysisV1beta1::Note::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::Note + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets a summary of the number and severity of occurrences. + # @param [String] parent + # The name of the project to get a vulnerability summary for in the form of + # `projects/[PROJECT_ID]`. + # @param [String] filter + # The filter expression. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::VulnerabilityOccurrencesSummary] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::VulnerabilityOccurrencesSummary] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_occurrence_vulnerability_summary(parent, filter: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta1/{+parent}/occurrences:vulnerabilitySummary', options) + command.response_representation = Google::Apis::ContaineranalysisV1beta1::VulnerabilityOccurrencesSummary::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::VulnerabilityOccurrencesSummary + command.params['parent'] = parent unless parent.nil? + command.query['filter'] = filter unless filter.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists occurrences for the specified project. + # @param [String] parent + # The name of the project to list occurrences for in the form of + # `projects/[PROJECT_ID]`. + # @param [String] filter + # The filter expression. + # @param [Fixnum] page_size + # Number of occurrences to return in the list. Must be positive. Max allowed + # page size is 1000. If not specified, page size defaults to 20. + # @param [String] page_token + # Token to provide to skip to a particular spot in the list. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::ListOccurrencesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::ListOccurrencesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_occurrences(parent, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta1/{+parent}/occurrences', options) + command.response_representation = Google::Apis::ContaineranalysisV1beta1::ListOccurrencesResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::ListOccurrencesResponse + command.params['parent'] = parent unless parent.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Updates the specified occurrence. + # @param [String] name + # The name of the occurrence in the form of + # `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`. + # @param [Google::Apis::ContaineranalysisV1beta1::Occurrence] occurrence_object + # @param [String] update_mask + # The fields to update. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::Occurrence] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::Occurrence] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def patch_project_occurrence(name, occurrence_object = nil, update_mask: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:patch, 'v1beta1/{+name}', options) + command.request_representation = Google::Apis::ContaineranalysisV1beta1::Occurrence::Representation + command.request_object = occurrence_object + command.response_representation = Google::Apis::ContaineranalysisV1beta1::Occurrence::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::Occurrence + command.params['name'] = name unless name.nil? + command.query['updateMask'] = update_mask unless update_mask.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Sets the access control policy on the specified note or occurrence. + # Requires `containeranalysis.notes.setIamPolicy` or + # `containeranalysis.occurrences.setIamPolicy` permission if the resource is + # a note or an occurrence, respectively. + # The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for + # notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for + # occurrences. + # @param [String] resource + # REQUIRED: The resource for which the policy is being specified. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1beta1::SetIamPolicyRequest] set_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def set_occurrence_iam_policy(resource, set_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta1/{+resource}:setIamPolicy', options) + command.request_representation = Google::Apis::ContaineranalysisV1beta1::SetIamPolicyRequest::Representation + command.request_object = set_iam_policy_request_object + command.response_representation = Google::Apis::ContaineranalysisV1beta1::Policy::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Returns the permissions that a caller has on the specified note or + # occurrence. Requires list permission on the project (for example, + # `containeranalysis.notes.list`). + # The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for + # notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for + # occurrences. + # @param [String] resource + # REQUIRED: The resource for which the policy detail is being requested. + # See the operation documentation for the appropriate value for this field. + # @param [Google::Apis::ContaineranalysisV1beta1::TestIamPermissionsRequest] test_iam_permissions_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::TestIamPermissionsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::TestIamPermissionsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def test_occurrence_iam_permissions(resource, test_iam_permissions_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1beta1/{+resource}:testIamPermissions', options) + command.request_representation = Google::Apis::ContaineranalysisV1beta1::TestIamPermissionsRequest::Representation + command.request_object = test_iam_permissions_request_object + command.response_representation = Google::Apis::ContaineranalysisV1beta1::TestIamPermissionsResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::TestIamPermissionsResponse + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the specified scan configuration. + # @param [String] name + # The name of the scan configuration in the form of + # `projects/[PROJECT_ID]/scanConfigs/[SCAN_CONFIG_ID]`. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::ScanConfig] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::ScanConfig] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_scan_config(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta1/{+name}', options) + command.response_representation = Google::Apis::ContaineranalysisV1beta1::ScanConfig::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::ScanConfig + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists scan configurations for the specified project. + # @param [String] parent + # The name of the project to list scan configurations for in the form of + # `projects/[PROJECT_ID]`. + # @param [String] filter + # The filter expression. + # @param [Fixnum] page_size + # The number of scan configs to return in the list. + # @param [String] page_token + # Token to provide to skip to a particular spot in the list. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::ListScanConfigsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::ListScanConfigsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_scan_configs(parent, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1beta1/{+parent}/scanConfigs', options) + command.response_representation = Google::Apis::ContaineranalysisV1beta1::ListScanConfigsResponse::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::ListScanConfigsResponse + command.params['parent'] = parent unless parent.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Updates the specified scan configuration. + # @param [String] name + # The name of the scan configuration in the form of + # `projects/[PROJECT_ID]/scanConfigs/[SCAN_CONFIG_ID]`. + # @param [Google::Apis::ContaineranalysisV1beta1::ScanConfig] scan_config_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ContaineranalysisV1beta1::ScanConfig] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ContaineranalysisV1beta1::ScanConfig] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def update_project_scan_config(name, scan_config_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:put, 'v1beta1/{+name}', options) + command.request_representation = Google::Apis::ContaineranalysisV1beta1::ScanConfig::Representation + command.request_object = scan_config_object + command.response_representation = Google::Apis::ContaineranalysisV1beta1::ScanConfig::Representation + command.response_class = Google::Apis::ContaineranalysisV1beta1::ScanConfig + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + protected + + def apply_command_defaults(command) + command.query['key'] = key unless key.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + end + end + end + end +end diff --git a/generated/google/apis/libraryagent_v1.rb b/generated/google/apis/libraryagent_v1.rb new file mode 100644 index 000000000..0693e54f6 --- /dev/null +++ b/generated/google/apis/libraryagent_v1.rb @@ -0,0 +1,34 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/libraryagent_v1/service.rb' +require 'google/apis/libraryagent_v1/classes.rb' +require 'google/apis/libraryagent_v1/representations.rb' + +module Google + module Apis + # Library Agent API + # + # A simple Google Example Library API. + # + # @see https://cloud.google.com/docs/quota + module LibraryagentV1 + VERSION = 'V1' + REVISION = '20190105' + + # View and manage your data across Google Cloud Platform services + AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' + end + end +end diff --git a/generated/google/apis/libraryagent_v1/classes.rb b/generated/google/apis/libraryagent_v1/classes.rb new file mode 100644 index 000000000..513ebfd5a --- /dev/null +++ b/generated/google/apis/libraryagent_v1/classes.rb @@ -0,0 +1,151 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module LibraryagentV1 + + # A single book in the library. + class GoogleExampleLibraryagentV1Book + include Google::Apis::Core::Hashable + + # The name of the book author. + # Corresponds to the JSON property `author` + # @return [String] + attr_accessor :author + + # The resource name of the book. + # Book names have the form `shelves/`shelf_id`/books/`book_id``. + # The name is ignored when creating a book. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Value indicating whether the book has been read. + # Corresponds to the JSON property `read` + # @return [Boolean] + attr_accessor :read + alias_method :read?, :read + + # The title of the book. + # Corresponds to the JSON property `title` + # @return [String] + attr_accessor :title + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @author = args[:author] if args.key?(:author) + @name = args[:name] if args.key?(:name) + @read = args[:read] if args.key?(:read) + @title = args[:title] if args.key?(:title) + end + end + + # Response message for LibraryAgent.ListBooks. + class GoogleExampleLibraryagentV1ListBooksResponse + include Google::Apis::Core::Hashable + + # The list of books. + # Corresponds to the JSON property `books` + # @return [Array] + attr_accessor :books + + # A token to retrieve next page of results. + # Pass this value in the + # ListBooksRequest.page_token + # field in the subsequent call to `ListBooks` method to retrieve the next + # page of results. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @books = args[:books] if args.key?(:books) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + end + end + + # Response message for LibraryAgent.ListShelves. + class GoogleExampleLibraryagentV1ListShelvesResponse + include Google::Apis::Core::Hashable + + # A token to retrieve next page of results. + # Pass this value in the + # ListShelvesRequest.page_token + # field in the subsequent call to `ListShelves` method to retrieve the next + # page of results. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # The list of shelves. + # Corresponds to the JSON property `shelves` + # @return [Array] + attr_accessor :shelves + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @shelves = args[:shelves] if args.key?(:shelves) + end + end + + # A Shelf contains a collection of books with a theme. + class GoogleExampleLibraryagentV1Shelf + include Google::Apis::Core::Hashable + + # Output only. The resource name of the shelf. + # Shelf names have the form `shelves/`shelf_id``. + # The name is ignored when creating a shelf. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The theme of the shelf + # Corresponds to the JSON property `theme` + # @return [String] + attr_accessor :theme + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @theme = args[:theme] if args.key?(:theme) + end + end + end + end +end diff --git a/generated/google/apis/libraryagent_v1/representations.rb b/generated/google/apis/libraryagent_v1/representations.rb new file mode 100644 index 000000000..b158f6e3a --- /dev/null +++ b/generated/google/apis/libraryagent_v1/representations.rb @@ -0,0 +1,86 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module LibraryagentV1 + + class GoogleExampleLibraryagentV1Book + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleExampleLibraryagentV1ListBooksResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleExampleLibraryagentV1ListShelvesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleExampleLibraryagentV1Shelf + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleExampleLibraryagentV1Book + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :author, as: 'author' + property :name, as: 'name' + property :read, as: 'read' + property :title, as: 'title' + end + end + + class GoogleExampleLibraryagentV1ListBooksResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :books, as: 'books', class: Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book, decorator: Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book::Representation + + property :next_page_token, as: 'nextPageToken' + end + end + + class GoogleExampleLibraryagentV1ListShelvesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :next_page_token, as: 'nextPageToken' + collection :shelves, as: 'shelves', class: Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Shelf, decorator: Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Shelf::Representation + + end + end + + class GoogleExampleLibraryagentV1Shelf + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :theme, as: 'theme' + end + end + end + end +end diff --git a/generated/google/apis/libraryagent_v1/service.rb b/generated/google/apis/libraryagent_v1/service.rb new file mode 100644 index 000000000..b2cc18966 --- /dev/null +++ b/generated/google/apis/libraryagent_v1/service.rb @@ -0,0 +1,265 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module LibraryagentV1 + # Library Agent API + # + # A simple Google Example Library API. + # + # @example + # require 'google/apis/libraryagent_v1' + # + # Libraryagent = Google::Apis::LibraryagentV1 # Alias the module + # service = Libraryagent::LibraryagentService.new + # + # @see https://cloud.google.com/docs/quota + class LibraryagentService < Google::Apis::Core::BaseService + # @return [String] + # 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. + attr_accessor :key + + # @return [String] + # 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. + attr_accessor :quota_user + + def initialize + super('https://libraryagent.googleapis.com/', '') + @batch_path = 'batch' + end + + # Gets a shelf. Returns NOT_FOUND if the shelf does not exist. + # @param [String] name + # The name of the shelf to retrieve. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Shelf] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Shelf] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_shelf(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}', options) + command.response_representation = Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Shelf::Representation + command.response_class = Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Shelf + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists shelves. The order is unspecified but deterministic. Newly created + # shelves will not necessarily be added to the end of this list. + # @param [Fixnum] page_size + # Requested page size. Server may return fewer shelves than requested. + # If unspecified, server will pick an appropriate default. + # @param [String] page_token + # A token identifying a page of results the server should return. + # Typically, this is the value of + # ListShelvesResponse.next_page_token + # returned from the previous call to `ListShelves` method. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1ListShelvesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1ListShelvesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_shelves(page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/shelves', options) + command.response_representation = Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1ListShelvesResponse::Representation + command.response_class = Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1ListShelvesResponse + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Borrow a book from the library. Returns the book if it is borrowed + # successfully. Returns NOT_FOUND if the book does not exist in the library. + # Returns quota exceeded error if the amount of books borrowed exceeds + # allocation quota in any dimensions. + # @param [String] name + # The name of the book to borrow. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def borrow_shelf_book(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+name}:borrow', options) + command.response_representation = Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book::Representation + command.response_class = Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets a book. Returns NOT_FOUND if the book does not exist. + # @param [String] name + # The name of the book to retrieve. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_shelf_book(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}', options) + command.response_representation = Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book::Representation + command.response_class = Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists books in a shelf. The order is unspecified but deterministic. Newly + # created books will not necessarily be added to the end of this list. + # Returns NOT_FOUND if the shelf does not exist. + # @param [String] parent + # The name of the shelf whose books we'd like to list. + # @param [Fixnum] page_size + # Requested page size. Server may return fewer books than requested. + # If unspecified, server will pick an appropriate default. + # @param [String] page_token + # A token identifying a page of results the server should return. + # Typically, this is the value of + # ListBooksResponse.next_page_token. + # returned from the previous call to `ListBooks` method. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1ListBooksResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1ListBooksResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_shelf_books(parent, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+parent}/books', options) + command.response_representation = Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1ListBooksResponse::Representation + command.response_class = Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1ListBooksResponse + command.params['parent'] = parent unless parent.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Return a book to the library. Returns the book if it is returned to the + # library successfully. + # Returns error if the book does not belong to the library + # or the users didn't borrow before. + # @param [String] name + # The name of the book to return. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def return_shelf_book(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+name}:return', options) + command.response_representation = Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book::Representation + command.response_class = Google::Apis::LibraryagentV1::GoogleExampleLibraryagentV1Book + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + protected + + def apply_command_defaults(command) + command.query['key'] = key unless key.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + end + end + end + end +end diff --git a/generated/google/apis/remotebuildexecution_v1.rb b/generated/google/apis/remotebuildexecution_v1.rb new file mode 100644 index 000000000..f87999065 --- /dev/null +++ b/generated/google/apis/remotebuildexecution_v1.rb @@ -0,0 +1,34 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/remotebuildexecution_v1/service.rb' +require 'google/apis/remotebuildexecution_v1/classes.rb' +require 'google/apis/remotebuildexecution_v1/representations.rb' + +module Google + module Apis + # Remote Build Execution API + # + # Supplies a Remote Execution API service for tools such as bazel. + # + # @see https://cloud.google.com/remote-build-execution/docs/ + module RemotebuildexecutionV1 + VERSION = 'V1' + REVISION = '20190103' + + # View and manage your data across Google Cloud Platform services + AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' + end + end +end diff --git a/generated/google/apis/remotebuildexecution_v1/classes.rb b/generated/google/apis/remotebuildexecution_v1/classes.rb new file mode 100644 index 000000000..fe4c99249 --- /dev/null +++ b/generated/google/apis/remotebuildexecution_v1/classes.rb @@ -0,0 +1,3858 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module RemotebuildexecutionV1 + + # An `Action` captures all the information about an execution which is required + # to reproduce it. + # `Action`s are the core component of the [Execution] service. A single + # `Action` represents a repeatable action that can be performed by the + # execution service. `Action`s can be succinctly identified by the digest of + # their wire format encoding and, once an `Action` has been executed, will be + # cached in the action cache. Future requests can then use the cached result + # rather than needing to run afresh. + # When a server completes execution of an + # Action, it MAY choose to + # cache the result in + # the ActionCache unless + # `do_not_cache` is `true`. Clients SHOULD expect the server to do so. By + # default, future calls to + # Execute the same + # `Action` will also serve their results from the cache. Clients must take care + # to understand the caching behaviour. Ideally, all `Action`s will be + # reproducible so that serving a result from cache is always desirable and + # correct. + class BuildBazelRemoteExecutionV2Action + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `commandDigest` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest] + attr_accessor :command_digest + + # If true, then the `Action`'s result cannot be cached. + # Corresponds to the JSON property `doNotCache` + # @return [Boolean] + attr_accessor :do_not_cache + alias_method :do_not_cache?, :do_not_cache + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `inputRootDigest` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest] + attr_accessor :input_root_digest + + # A timeout after which the execution should be killed. If the timeout is + # absent, then the client is specifying that the execution should continue + # as long as the server will let it. The server SHOULD impose a timeout if + # the client does not specify one, however, if the client does specify a + # timeout that is longer than the server's maximum timeout, the server MUST + # reject the request. + # The timeout is a part of the + # Action message, and + # therefore two `Actions` with different timeouts are different, even if they + # are otherwise identical. This is because, if they were not, running an + # `Action` with a lower timeout than is required might result in a cache hit + # from an execution run with a longer timeout, hiding the fact that the + # timeout is too short. By encoding it directly in the `Action`, a lower + # timeout will result in a cache miss and the execution timeout will fail + # immediately, rather than whenever the cache entry gets evicted. + # Corresponds to the JSON property `timeout` + # @return [String] + attr_accessor :timeout + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @command_digest = args[:command_digest] if args.key?(:command_digest) + @do_not_cache = args[:do_not_cache] if args.key?(:do_not_cache) + @input_root_digest = args[:input_root_digest] if args.key?(:input_root_digest) + @timeout = args[:timeout] if args.key?(:timeout) + end + end + + # An ActionResult represents the result of an + # Action being run. + class BuildBazelRemoteExecutionV2ActionResult + include Google::Apis::Core::Hashable + + # ExecutedActionMetadata contains details about a completed execution. + # Corresponds to the JSON property `executionMetadata` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2ExecutedActionMetadata] + attr_accessor :execution_metadata + + # The exit code of the command. + # Corresponds to the JSON property `exitCode` + # @return [Fixnum] + attr_accessor :exit_code + + # The output directories of the action. For each output directory requested + # in the `output_directories` field of the Action, if the corresponding + # directory existed after the action completed, a single entry will be + # present in the output list, which will contain the digest of a + # Tree message containing the + # directory tree, and the path equal exactly to the corresponding Action + # output_directories member. + # As an example, suppose the Action had an output directory `a/b/dir` and the + # execution produced the following contents in `a/b/dir`: a file named `bar` + # and a directory named `foo` with an executable file named `baz`. Then, + # output_directory will contain (hashes shortened for readability): + # ```json + # // OutputDirectory proto: + # ` + # path: "a/b/dir" + # tree_digest: ` + # hash: "4a73bc9d03...", + # size: 55 + # ` + # ` + # // Tree proto with hash "4a73bc9d03..." and size 55: + # ` + # root: ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # children : ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ` + # ``` + # Corresponds to the JSON property `outputDirectories` + # @return [Array] + attr_accessor :output_directories + + # The output directories of the action that are symbolic links to other + # directories. Those may be links to other output directories, or input + # directories, or even absolute paths outside of the working directory, + # if the server supports + # SymlinkAbsolutePathStrategy.ALLOWED. + # For each output directory requested in the `output_directories` field of + # the Action, if the directory file existed after + # the action completed, a single entry will be present either in this field, + # or in the `output_directories` field, if the directory was not a symbolic link. + # If the action does not produce the requested output, or produces a + # file where a directory is expected or vice versa, then that output + # will be omitted from the list. The server is free to arrange the output + # list as desired; clients MUST NOT assume that the output list is sorted. + # Corresponds to the JSON property `outputDirectorySymlinks` + # @return [Array] + attr_accessor :output_directory_symlinks + + # The output files of the action that are symbolic links to other files. Those + # may be links to other output files, or input files, or even absolute paths + # outside of the working directory, if the server supports + # SymlinkAbsolutePathStrategy.ALLOWED. + # For each output file requested in the `output_files` field of the Action, + # if the corresponding file existed after + # the action completed, a single entry will be present either in this field, + # or in the `output_files` field, if the file was not a symbolic link. + # If the action does not produce the requested output, or produces a + # directory where a regular file is expected or vice versa, then that output + # will be omitted from the list. The server is free to arrange the output + # list as desired; clients MUST NOT assume that the output list is sorted. + # Corresponds to the JSON property `outputFileSymlinks` + # @return [Array] + attr_accessor :output_file_symlinks + + # The output files of the action. For each output file requested in the + # `output_files` field of the Action, if the corresponding file existed after + # the action completed, a single entry will be present either in this field, + # or in the output_file_symlinks field, if the file was a symbolic link to + # another file. + # If the action does not produce the requested output, or produces a + # directory where a regular file is expected or vice versa, then that output + # will be omitted from the list. The server is free to arrange the output + # list as desired; clients MUST NOT assume that the output list is sorted. + # Corresponds to the JSON property `outputFiles` + # @return [Array] + attr_accessor :output_files + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `stderrDigest` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest] + attr_accessor :stderr_digest + + # The standard error buffer of the action. The server will determine, based + # on the size of the buffer, whether to return it in raw form or to return + # a digest in `stderr_digest` that points to the buffer. If neither is set, + # then the buffer is empty. The client SHOULD NOT assume it will get one of + # the raw buffer or a digest on any given request and should be prepared to + # handle either. + # Corresponds to the JSON property `stderrRaw` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :stderr_raw + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `stdoutDigest` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest] + attr_accessor :stdout_digest + + # The standard output buffer of the action. The server will determine, based + # on the size of the buffer, whether to return it in raw form or to return + # a digest in `stdout_digest` that points to the buffer. If neither is set, + # then the buffer is empty. The client SHOULD NOT assume it will get one of + # the raw buffer or a digest on any given request and should be prepared to + # handle either. + # Corresponds to the JSON property `stdoutRaw` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :stdout_raw + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @execution_metadata = args[:execution_metadata] if args.key?(:execution_metadata) + @exit_code = args[:exit_code] if args.key?(:exit_code) + @output_directories = args[:output_directories] if args.key?(:output_directories) + @output_directory_symlinks = args[:output_directory_symlinks] if args.key?(:output_directory_symlinks) + @output_file_symlinks = args[:output_file_symlinks] if args.key?(:output_file_symlinks) + @output_files = args[:output_files] if args.key?(:output_files) + @stderr_digest = args[:stderr_digest] if args.key?(:stderr_digest) + @stderr_raw = args[:stderr_raw] if args.key?(:stderr_raw) + @stdout_digest = args[:stdout_digest] if args.key?(:stdout_digest) + @stdout_raw = args[:stdout_raw] if args.key?(:stdout_raw) + end + end + + # A `Command` is the actual command executed by a worker running an + # Action and specifications of its + # environment. + # Except as otherwise required, the environment (such as which system + # libraries or binaries are available, and what filesystems are mounted where) + # is defined by and specific to the implementation of the remote execution API. + class BuildBazelRemoteExecutionV2Command + include Google::Apis::Core::Hashable + + # The arguments to the command. The first argument must be the path to the + # executable, which must be either a relative path, in which case it is + # evaluated with respect to the input root, or an absolute path. + # Corresponds to the JSON property `arguments` + # @return [Array] + attr_accessor :arguments + + # The environment variables to set when running the program. The worker may + # provide its own default environment variables; these defaults can be + # overridden using this field. Additional variables can also be specified. + # In order to ensure that equivalent `Command`s always hash to the same + # value, the environment variables MUST be lexicographically sorted by name. + # Sorting of strings is done by code point, equivalently, by the UTF-8 bytes. + # Corresponds to the JSON property `environmentVariables` + # @return [Array] + attr_accessor :environment_variables + + # A list of the output directories that the client expects to retrieve from + # the action. Only the contents of the indicated directories (recursively + # including the contents of their subdirectories) will be + # returned, as well as files listed in `output_files`. Other files that may + # be created during command execution are discarded. + # The paths are relative to the working directory of the action execution. + # The paths are specified using a single forward slash (`/`) as a path + # separator, even if the execution platform natively uses a different + # separator. The path MUST NOT include a trailing slash, nor a leading slash, + # being a relative path. The special value of empty string is allowed, + # although not recommended, and can be used to capture the entire working + # directory tree, including inputs. + # In order to ensure consistent hashing of the same Action, the output paths + # MUST be sorted lexicographically by code point (or, equivalently, by UTF-8 + # bytes). + # An output directory cannot be duplicated, be a parent of another output + # directory, be a parent of a listed output file, or have the same path as + # any of the listed output files. + # Corresponds to the JSON property `outputDirectories` + # @return [Array] + attr_accessor :output_directories + + # A list of the output files that the client expects to retrieve from the + # action. Only the listed files, as well as directories listed in + # `output_directories`, will be returned to the client as output. + # Other files that may be created during command execution are discarded. + # The paths are relative to the working directory of the action execution. + # The paths are specified using a single forward slash (`/`) as a path + # separator, even if the execution platform natively uses a different + # separator. The path MUST NOT include a trailing slash, nor a leading slash, + # being a relative path. + # In order to ensure consistent hashing of the same Action, the output paths + # MUST be sorted lexicographically by code point (or, equivalently, by UTF-8 + # bytes). + # An output file cannot be duplicated, be a parent of another output file, be + # a child of a listed output directory, or have the same path as any of the + # listed output directories. + # Corresponds to the JSON property `outputFiles` + # @return [Array] + attr_accessor :output_files + + # A `Platform` is a set of requirements, such as hardware, operating system, or + # compiler toolchain, for an + # Action's execution + # environment. A `Platform` is represented as a series of key-value pairs + # representing the properties that are required of the platform. + # Corresponds to the JSON property `platform` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Platform] + attr_accessor :platform + + # The working directory, relative to the input root, for the command to run + # in. It must be a directory which exists in the input tree. If it is left + # empty, then the action is run in the input root. + # Corresponds to the JSON property `workingDirectory` + # @return [String] + attr_accessor :working_directory + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arguments = args[:arguments] if args.key?(:arguments) + @environment_variables = args[:environment_variables] if args.key?(:environment_variables) + @output_directories = args[:output_directories] if args.key?(:output_directories) + @output_files = args[:output_files] if args.key?(:output_files) + @platform = args[:platform] if args.key?(:platform) + @working_directory = args[:working_directory] if args.key?(:working_directory) + end + end + + # An `EnvironmentVariable` is one variable to set in the running program's + # environment. + class BuildBazelRemoteExecutionV2CommandEnvironmentVariable + include Google::Apis::Core::Hashable + + # The variable name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The variable value. + # Corresponds to the JSON property `value` + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + class BuildBazelRemoteExecutionV2Digest + include Google::Apis::Core::Hashable + + # The hash. In the case of SHA-256, it will always be a lowercase hex string + # exactly 64 characters long. + # Corresponds to the JSON property `hash` + # @return [String] + attr_accessor :hash_prop + + # The size of the blob, in bytes. + # Corresponds to the JSON property `sizeBytes` + # @return [Fixnum] + attr_accessor :size_bytes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @hash_prop = args[:hash_prop] if args.key?(:hash_prop) + @size_bytes = args[:size_bytes] if args.key?(:size_bytes) + end + end + + # A `Directory` represents a directory node in a file tree, containing zero or + # more children FileNodes, + # DirectoryNodes and + # SymlinkNodes. + # Each `Node` contains its name in the directory, either the digest of its + # content (either a file blob or a `Directory` proto) or a symlink target, as + # well as possibly some metadata about the file or directory. + # In order to ensure that two equivalent directory trees hash to the same + # value, the following restrictions MUST be obeyed when constructing a + # a `Directory`: + # - Every child in the directory must have a path of exactly one segment. + # Multiple levels of directory hierarchy may not be collapsed. + # - Each child in the directory must have a unique path segment (file name). + # - The files, directories and symlinks in the directory must each be sorted + # in lexicographical order by path. The path strings must be sorted by code + # point, equivalently, by UTF-8 bytes. + # A `Directory` that obeys the restrictions is said to be in canonical form. + # As an example, the following could be used for a file named `bar` and a + # directory named `foo` with an executable file named `baz` (hashes shortened + # for readability): + # ```json + # // (Directory proto) + # ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # ` + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ``` + class BuildBazelRemoteExecutionV2Directory + include Google::Apis::Core::Hashable + + # The subdirectories in the directory. + # Corresponds to the JSON property `directories` + # @return [Array] + attr_accessor :directories + + # The files in the directory. + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + # The symlinks in the directory. + # Corresponds to the JSON property `symlinks` + # @return [Array] + attr_accessor :symlinks + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @directories = args[:directories] if args.key?(:directories) + @files = args[:files] if args.key?(:files) + @symlinks = args[:symlinks] if args.key?(:symlinks) + end + end + + # A `DirectoryNode` represents a child of a + # Directory which is itself + # a `Directory` and its associated metadata. + class BuildBazelRemoteExecutionV2DirectoryNode + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # The name of the directory. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @name = args[:name] if args.key?(:name) + end + end + + # Metadata about an ongoing + # execution, which + # will be contained in the metadata + # field of the + # Operation. + class BuildBazelRemoteExecutionV2ExecuteOperationMetadata + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `actionDigest` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest] + attr_accessor :action_digest + + # + # Corresponds to the JSON property `stage` + # @return [String] + attr_accessor :stage + + # If set, the client can use this name with + # ByteStream.Read to stream the + # standard error. + # Corresponds to the JSON property `stderrStreamName` + # @return [String] + attr_accessor :stderr_stream_name + + # If set, the client can use this name with + # ByteStream.Read to stream the + # standard output. + # Corresponds to the JSON property `stdoutStreamName` + # @return [String] + attr_accessor :stdout_stream_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_digest = args[:action_digest] if args.key?(:action_digest) + @stage = args[:stage] if args.key?(:stage) + @stderr_stream_name = args[:stderr_stream_name] if args.key?(:stderr_stream_name) + @stdout_stream_name = args[:stdout_stream_name] if args.key?(:stdout_stream_name) + end + end + + # The response message for + # Execution.Execute, + # which will be contained in the response + # field of the + # Operation. + class BuildBazelRemoteExecutionV2ExecuteResponse + include Google::Apis::Core::Hashable + + # True if the result was served from cache, false if it was executed. + # Corresponds to the JSON property `cachedResult` + # @return [Boolean] + attr_accessor :cached_result + alias_method :cached_result?, :cached_result + + # An ActionResult represents the result of an + # Action being run. + # Corresponds to the JSON property `result` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2ActionResult] + attr_accessor :result + + # An optional list of additional log outputs the server wishes to provide. A + # server can use this to return execution-specific logs however it wishes. + # This is intended primarily to make it easier for users to debug issues that + # may be outside of the actual job execution, such as by identifying the + # worker executing the action or by providing logs from the worker's setup + # phase. The keys SHOULD be human readable so that a client can display them + # to a user. + # Corresponds to the JSON property `serverLogs` + # @return [Hash] + attr_accessor :server_logs + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `status` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleRpcStatus] + attr_accessor :status + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cached_result = args[:cached_result] if args.key?(:cached_result) + @result = args[:result] if args.key?(:result) + @server_logs = args[:server_logs] if args.key?(:server_logs) + @status = args[:status] if args.key?(:status) + end + end + + # ExecutedActionMetadata contains details about a completed execution. + class BuildBazelRemoteExecutionV2ExecutedActionMetadata + include Google::Apis::Core::Hashable + + # When the worker completed executing the action command. + # Corresponds to the JSON property `executionCompletedTimestamp` + # @return [String] + attr_accessor :execution_completed_timestamp + + # When the worker started executing the action command. + # Corresponds to the JSON property `executionStartTimestamp` + # @return [String] + attr_accessor :execution_start_timestamp + + # When the worker finished fetching action inputs. + # Corresponds to the JSON property `inputFetchCompletedTimestamp` + # @return [String] + attr_accessor :input_fetch_completed_timestamp + + # When the worker started fetching action inputs. + # Corresponds to the JSON property `inputFetchStartTimestamp` + # @return [String] + attr_accessor :input_fetch_start_timestamp + + # When the worker finished uploading action outputs. + # Corresponds to the JSON property `outputUploadCompletedTimestamp` + # @return [String] + attr_accessor :output_upload_completed_timestamp + + # When the worker started uploading action outputs. + # Corresponds to the JSON property `outputUploadStartTimestamp` + # @return [String] + attr_accessor :output_upload_start_timestamp + + # When was the action added to the queue. + # Corresponds to the JSON property `queuedTimestamp` + # @return [String] + attr_accessor :queued_timestamp + + # The name of the worker which ran the execution. + # Corresponds to the JSON property `worker` + # @return [String] + attr_accessor :worker + + # When the worker completed the action, including all stages. + # Corresponds to the JSON property `workerCompletedTimestamp` + # @return [String] + attr_accessor :worker_completed_timestamp + + # When the worker received the action. + # Corresponds to the JSON property `workerStartTimestamp` + # @return [String] + attr_accessor :worker_start_timestamp + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @execution_completed_timestamp = args[:execution_completed_timestamp] if args.key?(:execution_completed_timestamp) + @execution_start_timestamp = args[:execution_start_timestamp] if args.key?(:execution_start_timestamp) + @input_fetch_completed_timestamp = args[:input_fetch_completed_timestamp] if args.key?(:input_fetch_completed_timestamp) + @input_fetch_start_timestamp = args[:input_fetch_start_timestamp] if args.key?(:input_fetch_start_timestamp) + @output_upload_completed_timestamp = args[:output_upload_completed_timestamp] if args.key?(:output_upload_completed_timestamp) + @output_upload_start_timestamp = args[:output_upload_start_timestamp] if args.key?(:output_upload_start_timestamp) + @queued_timestamp = args[:queued_timestamp] if args.key?(:queued_timestamp) + @worker = args[:worker] if args.key?(:worker) + @worker_completed_timestamp = args[:worker_completed_timestamp] if args.key?(:worker_completed_timestamp) + @worker_start_timestamp = args[:worker_start_timestamp] if args.key?(:worker_start_timestamp) + end + end + + # A `FileNode` represents a single file and associated metadata. + class BuildBazelRemoteExecutionV2FileNode + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # True if file is executable, false otherwise. + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The name of the file. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @name = args[:name] if args.key?(:name) + end + end + + # A `LogFile` is a log stored in the CAS. + class BuildBazelRemoteExecutionV2LogFile + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # This is a hint as to the purpose of the log, and is set to true if the log + # is human-readable text that can be usefully displayed to a user, and false + # otherwise. For instance, if a command-line client wishes to print the + # server logs to the terminal for a failed action, this allows it to avoid + # displaying a binary file. + # Corresponds to the JSON property `humanReadable` + # @return [Boolean] + attr_accessor :human_readable + alias_method :human_readable?, :human_readable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @human_readable = args[:human_readable] if args.key?(:human_readable) + end + end + + # An `OutputDirectory` is the output in an `ActionResult` corresponding to a + # directory's full contents rather than a single file. + class BuildBazelRemoteExecutionV2OutputDirectory + include Google::Apis::Core::Hashable + + # The full path of the directory relative to the working directory. The path + # separator is a forward slash `/`. Since this is a relative path, it MUST + # NOT begin with a leading forward slash. The empty string value is allowed, + # and it denotes the entire working directory. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `treeDigest` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest] + attr_accessor :tree_digest + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @path = args[:path] if args.key?(:path) + @tree_digest = args[:tree_digest] if args.key?(:tree_digest) + end + end + + # An `OutputFile` is similar to a + # FileNode, but it is used as an + # output in an `ActionResult`. It allows a full file path rather than + # only a name. + # `OutputFile` is binary-compatible with `FileNode`. + class BuildBazelRemoteExecutionV2OutputFile + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # True if file is executable, false otherwise. + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The full path of the file relative to the working directory, including the + # filename. The path separator is a forward slash `/`. Since this is a + # relative path, it MUST NOT begin with a leading forward slash. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @path = args[:path] if args.key?(:path) + end + end + + # An `OutputSymlink` is similar to a + # Symlink, but it is used as an + # output in an `ActionResult`. + # `OutputSymlink` is binary-compatible with `SymlinkNode`. + class BuildBazelRemoteExecutionV2OutputSymlink + include Google::Apis::Core::Hashable + + # The full path of the symlink relative to the working directory, including the + # filename. The path separator is a forward slash `/`. Since this is a + # relative path, it MUST NOT begin with a leading forward slash. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + # The target path of the symlink. The path separator is a forward slash `/`. + # The target path can be relative to the parent directory of the symlink or + # it can be an absolute path starting with `/`. Support for absolute paths + # can be checked using the Capabilities + # API. The canonical form forbids the substrings `/./` and `//` in the target + # path. `..` components are allowed anywhere in the target path. + # Corresponds to the JSON property `target` + # @return [String] + attr_accessor :target + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @path = args[:path] if args.key?(:path) + @target = args[:target] if args.key?(:target) + end + end + + # A `Platform` is a set of requirements, such as hardware, operating system, or + # compiler toolchain, for an + # Action's execution + # environment. A `Platform` is represented as a series of key-value pairs + # representing the properties that are required of the platform. + class BuildBazelRemoteExecutionV2Platform + include Google::Apis::Core::Hashable + + # The properties that make up this platform. In order to ensure that + # equivalent `Platform`s always hash to the same value, the properties MUST + # be lexicographically sorted by name, and then by value. Sorting of strings + # is done by code point, equivalently, by the UTF-8 bytes. + # Corresponds to the JSON property `properties` + # @return [Array] + attr_accessor :properties + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @properties = args[:properties] if args.key?(:properties) + end + end + + # A single property for the environment. The server is responsible for + # specifying the property `name`s that it accepts. If an unknown `name` is + # provided in the requirements for an + # Action, the server SHOULD + # reject the execution request. If permitted by the server, the same `name` + # may occur multiple times. + # The server is also responsible for specifying the interpretation of + # property `value`s. For instance, a property describing how much RAM must be + # available may be interpreted as allowing a worker with 16GB to fulfill a + # request for 8GB, while a property describing the OS environment on which + # the action must be performed may require an exact match with the worker's + # OS. + # The server MAY use the `value` of one or more properties to determine how + # it sets up the execution environment, such as by making specific system + # files available to the worker. + class BuildBazelRemoteExecutionV2PlatformProperty + include Google::Apis::Core::Hashable + + # The property name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The property value. + # Corresponds to the JSON property `value` + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # An optional Metadata to attach to any RPC request to tell the server about an + # external context of the request. The server may use this for logging or other + # purposes. To use it, the client attaches the header to the call using the + # canonical proto serialization: + # name: build.bazel.remote.execution.v2.requestmetadata-bin + # contents: the base64 encoded binary RequestMetadata message. + class BuildBazelRemoteExecutionV2RequestMetadata + include Google::Apis::Core::Hashable + + # An identifier that ties multiple requests to the same action. + # For example, multiple requests to the CAS, Action Cache, and Execution + # API are used in order to compile foo.cc. + # Corresponds to the JSON property `actionId` + # @return [String] + attr_accessor :action_id + + # An identifier to tie multiple tool invocations together. For example, + # runs of foo_test, bar_test and baz_test on a post-submit of a given patch. + # Corresponds to the JSON property `correlatedInvocationsId` + # @return [String] + attr_accessor :correlated_invocations_id + + # Details for the tool used to call the API. + # Corresponds to the JSON property `toolDetails` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2ToolDetails] + attr_accessor :tool_details + + # An identifier that ties multiple actions together to a final result. + # For example, multiple actions are required to build and run foo_test. + # Corresponds to the JSON property `toolInvocationId` + # @return [String] + attr_accessor :tool_invocation_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_id = args[:action_id] if args.key?(:action_id) + @correlated_invocations_id = args[:correlated_invocations_id] if args.key?(:correlated_invocations_id) + @tool_details = args[:tool_details] if args.key?(:tool_details) + @tool_invocation_id = args[:tool_invocation_id] if args.key?(:tool_invocation_id) + end + end + + # A `SymlinkNode` represents a symbolic link. + class BuildBazelRemoteExecutionV2SymlinkNode + include Google::Apis::Core::Hashable + + # The name of the symlink. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The target path of the symlink. The path separator is a forward slash `/`. + # The target path can be relative to the parent directory of the symlink or + # it can be an absolute path starting with `/`. Support for absolute paths + # can be checked using the Capabilities + # API. The canonical form forbids the substrings `/./` and `//` in the target + # path. `..` components are allowed anywhere in the target path. + # Corresponds to the JSON property `target` + # @return [String] + attr_accessor :target + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @target = args[:target] if args.key?(:target) + end + end + + # Details for the tool used to call the API. + class BuildBazelRemoteExecutionV2ToolDetails + include Google::Apis::Core::Hashable + + # Name of the tool, e.g. bazel. + # Corresponds to the JSON property `toolName` + # @return [String] + attr_accessor :tool_name + + # Version of the tool used for the request, e.g. 5.0.3. + # Corresponds to the JSON property `toolVersion` + # @return [String] + attr_accessor :tool_version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @tool_name = args[:tool_name] if args.key?(:tool_name) + @tool_version = args[:tool_version] if args.key?(:tool_version) + end + end + + # A `Tree` contains all the + # Directory protos in a + # single directory Merkle tree, compressed into one message. + class BuildBazelRemoteExecutionV2Tree + include Google::Apis::Core::Hashable + + # All the child directories: the directories referred to by the root and, + # recursively, all its children. In order to reconstruct the directory tree, + # the client must take the digests of each of the child directories and then + # build up a tree starting from the `root`. + # Corresponds to the JSON property `children` + # @return [Array] + attr_accessor :children + + # A `Directory` represents a directory node in a file tree, containing zero or + # more children FileNodes, + # DirectoryNodes and + # SymlinkNodes. + # Each `Node` contains its name in the directory, either the digest of its + # content (either a file blob or a `Directory` proto) or a symlink target, as + # well as possibly some metadata about the file or directory. + # In order to ensure that two equivalent directory trees hash to the same + # value, the following restrictions MUST be obeyed when constructing a + # a `Directory`: + # - Every child in the directory must have a path of exactly one segment. + # Multiple levels of directory hierarchy may not be collapsed. + # - Each child in the directory must have a unique path segment (file name). + # - The files, directories and symlinks in the directory must each be sorted + # in lexicographical order by path. The path strings must be sorted by code + # point, equivalently, by UTF-8 bytes. + # A `Directory` that obeys the restrictions is said to be in canonical form. + # As an example, the following could be used for a file named `bar` and a + # directory named `foo` with an executable file named `baz` (hashes shortened + # for readability): + # ```json + # // (Directory proto) + # ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # ` + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ``` + # Corresponds to the JSON property `root` + # @return [Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Directory] + attr_accessor :root + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @children = args[:children] if args.key?(:children) + @root = args[:root] if args.key?(:root) + end + end + + # Media resource. + class GoogleBytestreamMedia + include Google::Apis::Core::Hashable + + # Name of the media resource. + # Corresponds to the JSON property `resourceName` + # @return [String] + attr_accessor :resource_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @resource_name = args[:resource_name] if args.key?(:resource_name) + end + end + + # CommandDuration contains the various duration metrics tracked when a bot + # performs a command. + class GoogleDevtoolsRemotebuildbotCommandDurations + include Google::Apis::Core::Hashable + + # The time spent preparing the command to be run in a Docker container + # (includes pulling the Docker image, if necessary). + # Corresponds to the JSON property `dockerPrep` + # @return [String] + attr_accessor :docker_prep + + # The time spent downloading the input files and constructing the working + # directory. + # Corresponds to the JSON property `download` + # @return [String] + attr_accessor :download + + # The time spent executing the command (i.e., doing useful work). + # Corresponds to the JSON property `execution` + # @return [String] + attr_accessor :execution + + # The timestamp when preparation is done and bot starts downloading files. + # Corresponds to the JSON property `isoPrepDone` + # @return [String] + attr_accessor :iso_prep_done + + # The time spent completing the command, in total. + # Corresponds to the JSON property `overall` + # @return [String] + attr_accessor :overall + + # The time spent uploading the stdout logs. + # Corresponds to the JSON property `stdout` + # @return [String] + attr_accessor :stdout + + # The time spent uploading the output files. + # Corresponds to the JSON property `upload` + # @return [String] + attr_accessor :upload + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @docker_prep = args[:docker_prep] if args.key?(:docker_prep) + @download = args[:download] if args.key?(:download) + @execution = args[:execution] if args.key?(:execution) + @iso_prep_done = args[:iso_prep_done] if args.key?(:iso_prep_done) + @overall = args[:overall] if args.key?(:overall) + @stdout = args[:stdout] if args.key?(:stdout) + @upload = args[:upload] if args.key?(:upload) + end + end + + # CommandEvents contains counters for the number of warnings and errors + # that occurred during the execution of a command. + class GoogleDevtoolsRemotebuildbotCommandEvents + include Google::Apis::Core::Hashable + + # Indicates whether we are using a cached Docker image (true) or had to pull + # the Docker image (false) for this command. + # Corresponds to the JSON property `dockerCacheHit` + # @return [Boolean] + attr_accessor :docker_cache_hit + alias_method :docker_cache_hit?, :docker_cache_hit + + # The number of errors reported. + # Corresponds to the JSON property `numErrors` + # @return [Fixnum] + attr_accessor :num_errors + + # The number of warnings reported. + # Corresponds to the JSON property `numWarnings` + # @return [Fixnum] + attr_accessor :num_warnings + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @docker_cache_hit = args[:docker_cache_hit] if args.key?(:docker_cache_hit) + @num_errors = args[:num_errors] if args.key?(:num_errors) + @num_warnings = args[:num_warnings] if args.key?(:num_warnings) + end + end + + # The request used for `CreateInstance`. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest + include Google::Apis::Core::Hashable + + # Instance conceptually encapsulates all Remote Build Execution resources + # for remote builds. + # An instance consists of storage and compute resources (for example, + # `ContentAddressableStorage`, `ActionCache`, `WorkerPools`) used for + # running remote builds. + # All Remote Build Execution API calls are scoped to an instance. + # Corresponds to the JSON property `instance` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance] + attr_accessor :instance + + # ID of the created instance. + # A valid `instance_id` must: + # be 6-50 characters long, + # contains only lowercase letters, digits, hyphens and underscores, + # start with a lowercase letter, and + # end with a lowercase letter or a digit. + # Corresponds to the JSON property `instanceId` + # @return [String] + attr_accessor :instance_id + + # Resource name of the project containing the instance. + # Format: `projects/[PROJECT_ID]`. + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @instance = args[:instance] if args.key?(:instance) + @instance_id = args[:instance_id] if args.key?(:instance_id) + @parent = args[:parent] if args.key?(:parent) + end + end + + # The request used for `CreateWorkerPool`. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest + include Google::Apis::Core::Hashable + + # Resource name of the instance in which to create the new worker pool. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + # ID of the created worker pool. + # A valid pool ID must: + # be 6-50 characters long, + # contain only lowercase letters, digits, hyphens and underscores, + # start with a lowercase letter, and + # end with a lowercase letter or a digit. + # Corresponds to the JSON property `poolId` + # @return [String] + attr_accessor :pool_id + + # A worker pool resource in the Remote Build Execution API. + # Corresponds to the JSON property `workerPool` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool] + attr_accessor :worker_pool + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @parent = args[:parent] if args.key?(:parent) + @pool_id = args[:pool_id] if args.key?(:pool_id) + @worker_pool = args[:worker_pool] if args.key?(:worker_pool) + end + end + + # The request used for `DeleteInstance`. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest + include Google::Apis::Core::Hashable + + # Name of the instance to delete. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # The request used for DeleteWorkerPool. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest + include Google::Apis::Core::Hashable + + # Name of the worker pool to delete. + # Format: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # The request used for `GetInstance`. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest + include Google::Apis::Core::Hashable + + # Name of the instance to retrieve. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # The request used for GetWorkerPool. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest + include Google::Apis::Core::Hashable + + # Name of the worker pool to retrieve. + # Format: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # Instance conceptually encapsulates all Remote Build Execution resources + # for remote builds. + # An instance consists of storage and compute resources (for example, + # `ContentAddressableStorage`, `ActionCache`, `WorkerPools`) used for + # running remote builds. + # All Remote Build Execution API calls are scoped to an instance. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance + include Google::Apis::Core::Hashable + + # The location is a GCP region. Currently only `us-central1` is supported. + # Corresponds to the JSON property `location` + # @return [String] + attr_accessor :location + + # Output only. Instance resource name formatted as: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Name should not be populated when creating an instance since it is provided + # in the `instance_id` field. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Output only. State of the instance. + # Corresponds to the JSON property `state` + # @return [String] + attr_accessor :state + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @location = args[:location] if args.key?(:location) + @name = args[:name] if args.key?(:name) + @state = args[:state] if args.key?(:state) + end + end + + # + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest + include Google::Apis::Core::Hashable + + # Resource name of the project. + # Format: `projects/[PROJECT_ID]`. + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @parent = args[:parent] if args.key?(:parent) + end + end + + # + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse + include Google::Apis::Core::Hashable + + # The list of instances in a given project. + # Corresponds to the JSON property `instances` + # @return [Array] + attr_accessor :instances + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @instances = args[:instances] if args.key?(:instances) + end + end + + # + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest + include Google::Apis::Core::Hashable + + # Resource name of the instance. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @parent = args[:parent] if args.key?(:parent) + end + end + + # + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse + include Google::Apis::Core::Hashable + + # The list of worker pools in a given instance. + # Corresponds to the JSON property `workerPools` + # @return [Array] + attr_accessor :worker_pools + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @worker_pools = args[:worker_pools] if args.key?(:worker_pools) + end + end + + # The request used for UpdateWorkerPool. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest + include Google::Apis::Core::Hashable + + # The update mask applies to worker_pool. For the `FieldMask` definition, + # see https://developers.google.com/protocol-buffers/docs/reference/google. + # protobuf#fieldmask + # If an empty update_mask is provided, only the non-default valued field in + # the worker pool field will be updated. Note that in order to update a field + # to the default value (zero, false, empty string) an explicit update_mask + # must be provided. + # Corresponds to the JSON property `updateMask` + # @return [String] + attr_accessor :update_mask + + # A worker pool resource in the Remote Build Execution API. + # Corresponds to the JSON property `workerPool` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool] + attr_accessor :worker_pool + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @update_mask = args[:update_mask] if args.key?(:update_mask) + @worker_pool = args[:worker_pool] if args.key?(:worker_pool) + end + end + + # Defines the configuration to be used for a creating workers in + # the worker pool. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig + include Google::Apis::Core::Hashable + + # Required. Size of the disk attached to the worker, in GB. + # See https://cloud.google.com/compute/docs/disks/ + # Corresponds to the JSON property `diskSizeGb` + # @return [Fixnum] + attr_accessor :disk_size_gb + + # Required. Disk Type to use for the worker. + # See [Storage options](https://cloud.google.com/compute/docs/disks/# + # introduction). + # Currently only `pd-standard` is supported. + # Corresponds to the JSON property `diskType` + # @return [String] + attr_accessor :disk_type + + # Required. Machine type of the worker, such as n1-standard-2. + # See https://cloud.google.com/compute/docs/machine-types for a list of + # supported machine types. + # Corresponds to the JSON property `machineType` + # @return [String] + attr_accessor :machine_type + + # Minimum CPU platform to use when creating the worker. + # See [CPU Platforms](https://cloud.google.com/compute/docs/cpu-platforms). + # Corresponds to the JSON property `minCpuPlatform` + # @return [String] + attr_accessor :min_cpu_platform + + # Output only. `reserved=true` means the worker is reserved and won't be + # preempted. + # Corresponds to the JSON property `reserved` + # @return [Boolean] + attr_accessor :reserved + alias_method :reserved?, :reserved + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb) + @disk_type = args[:disk_type] if args.key?(:disk_type) + @machine_type = args[:machine_type] if args.key?(:machine_type) + @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform) + @reserved = args[:reserved] if args.key?(:reserved) + end + end + + # A worker pool resource in the Remote Build Execution API. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool + include Google::Apis::Core::Hashable + + # WorkerPool resource name formatted as: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. + # name should not be populated when creating a worker pool since it is + # provided in the `poolId` field. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Output only. State of the worker pool. + # Corresponds to the JSON property `state` + # @return [String] + attr_accessor :state + + # Defines the configuration to be used for a creating workers in + # the worker pool. + # Corresponds to the JSON property `workerConfig` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig] + attr_accessor :worker_config + + # The desired number of workers in the worker pool. Must be a value between + # 0 and 1000. + # Corresponds to the JSON property `workerCount` + # @return [Fixnum] + attr_accessor :worker_count + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @state = args[:state] if args.key?(:state) + @worker_config = args[:worker_config] if args.key?(:worker_config) + @worker_count = args[:worker_count] if args.key?(:worker_count) + end + end + + # An ActionResult represents the result of an + # Action being run. + class GoogleDevtoolsRemoteexecutionV1testActionResult + include Google::Apis::Core::Hashable + + # The exit code of the command. + # Corresponds to the JSON property `exitCode` + # @return [Fixnum] + attr_accessor :exit_code + + # The output directories of the action. For each output directory requested + # in the `output_directories` field of the Action, if the corresponding + # directory existed after the action completed, a single entry will be + # present in the output list, which will contain the digest of + # a Tree message containing + # the directory tree, and the path equal exactly to the corresponding Action + # output_directories member. + # As an example, suppose the Action had an output directory `a/b/dir` and the + # execution produced the following contents in `a/b/dir`: a file named `bar` + # and a directory named `foo` with an executable file named `baz`. Then, + # output_directory will contain (hashes shortened for readability): + # ```json + # // OutputDirectory proto: + # ` + # path: "a/b/dir" + # tree_digest: ` + # hash: "4a73bc9d03...", + # size: 55 + # ` + # ` + # // Tree proto with hash "4a73bc9d03..." and size 55: + # ` + # root: ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # children : ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ` + # ``` + # Corresponds to the JSON property `outputDirectories` + # @return [Array] + attr_accessor :output_directories + + # The output files of the action. For each output file requested in the + # `output_files` field of the Action, if the corresponding file existed after + # the action completed, a single entry will be present in the output list. + # If the action does not produce the requested output, or produces a + # directory where a regular file is expected or vice versa, then that output + # will be omitted from the list. The server is free to arrange the output + # list as desired; clients MUST NOT assume that the output list is sorted. + # Corresponds to the JSON property `outputFiles` + # @return [Array] + attr_accessor :output_files + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `stderrDigest` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :stderr_digest + + # The standard error buffer of the action. The server will determine, based + # on the size of the buffer, whether to return it in raw form or to return + # a digest in `stderr_digest` that points to the buffer. If neither is set, + # then the buffer is empty. The client SHOULD NOT assume it will get one of + # the raw buffer or a digest on any given request and should be prepared to + # handle either. + # Corresponds to the JSON property `stderrRaw` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :stderr_raw + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `stdoutDigest` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :stdout_digest + + # The standard output buffer of the action. The server will determine, based + # on the size of the buffer, whether to return it in raw form or to return + # a digest in `stdout_digest` that points to the buffer. If neither is set, + # then the buffer is empty. The client SHOULD NOT assume it will get one of + # the raw buffer or a digest on any given request and should be prepared to + # handle either. + # Corresponds to the JSON property `stdoutRaw` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :stdout_raw + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @exit_code = args[:exit_code] if args.key?(:exit_code) + @output_directories = args[:output_directories] if args.key?(:output_directories) + @output_files = args[:output_files] if args.key?(:output_files) + @stderr_digest = args[:stderr_digest] if args.key?(:stderr_digest) + @stderr_raw = args[:stderr_raw] if args.key?(:stderr_raw) + @stdout_digest = args[:stdout_digest] if args.key?(:stdout_digest) + @stdout_raw = args[:stdout_raw] if args.key?(:stdout_raw) + end + end + + # A `Command` is the actual command executed by a worker running an + # Action. + # Except as otherwise required, the environment (such as which system + # libraries or binaries are available, and what filesystems are mounted where) + # is defined by and specific to the implementation of the remote execution API. + class GoogleDevtoolsRemoteexecutionV1testCommand + include Google::Apis::Core::Hashable + + # The arguments to the command. The first argument must be the path to the + # executable, which must be either a relative path, in which case it is + # evaluated with respect to the input root, or an absolute path. + # The working directory will always be the input root. + # Corresponds to the JSON property `arguments` + # @return [Array] + attr_accessor :arguments + + # The environment variables to set when running the program. The worker may + # provide its own default environment variables; these defaults can be + # overridden using this field. Additional variables can also be specified. + # In order to ensure that equivalent `Command`s always hash to the same + # value, the environment variables MUST be lexicographically sorted by name. + # Sorting of strings is done by code point, equivalently, by the UTF-8 bytes. + # Corresponds to the JSON property `environmentVariables` + # @return [Array] + attr_accessor :environment_variables + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arguments = args[:arguments] if args.key?(:arguments) + @environment_variables = args[:environment_variables] if args.key?(:environment_variables) + end + end + + # An `EnvironmentVariable` is one variable to set in the running program's + # environment. + class GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable + include Google::Apis::Core::Hashable + + # The variable name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The variable value. + # Corresponds to the JSON property `value` + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + class GoogleDevtoolsRemoteexecutionV1testDigest + include Google::Apis::Core::Hashable + + # The hash. In the case of SHA-256, it will always be a lowercase hex string + # exactly 64 characters long. + # Corresponds to the JSON property `hash` + # @return [String] + attr_accessor :hash_prop + + # The size of the blob, in bytes. + # Corresponds to the JSON property `sizeBytes` + # @return [Fixnum] + attr_accessor :size_bytes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @hash_prop = args[:hash_prop] if args.key?(:hash_prop) + @size_bytes = args[:size_bytes] if args.key?(:size_bytes) + end + end + + # A `Directory` represents a directory node in a file tree, containing zero or + # more children FileNodes + # and DirectoryNodes. + # Each `Node` contains its name in the directory, the digest of its content + # (either a file blob or a `Directory` proto), as well as possibly some + # metadata about the file or directory. + # In order to ensure that two equivalent directory trees hash to the same + # value, the following restrictions MUST be obeyed when constructing a + # a `Directory`: + # - Every child in the directory must have a path of exactly one segment. + # Multiple levels of directory hierarchy may not be collapsed. + # - Each child in the directory must have a unique path segment (file name). + # - The files and directories in the directory must each be sorted in + # lexicographical order by path. The path strings must be sorted by code + # point, equivalently, by UTF-8 bytes. + # A `Directory` that obeys the restrictions is said to be in canonical form. + # As an example, the following could be used for a file named `bar` and a + # directory named `foo` with an executable file named `baz` (hashes shortened + # for readability): + # ```json + # // (Directory proto) + # ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # ` + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ``` + class GoogleDevtoolsRemoteexecutionV1testDirectory + include Google::Apis::Core::Hashable + + # The subdirectories in the directory. + # Corresponds to the JSON property `directories` + # @return [Array] + attr_accessor :directories + + # The files in the directory. + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @directories = args[:directories] if args.key?(:directories) + @files = args[:files] if args.key?(:files) + end + end + + # A `DirectoryNode` represents a child of a + # Directory which is itself + # a `Directory` and its associated metadata. + class GoogleDevtoolsRemoteexecutionV1testDirectoryNode + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # The name of the directory. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @name = args[:name] if args.key?(:name) + end + end + + # Metadata about an ongoing + # execution, which + # will be contained in the metadata + # field of the + # Operation. + class GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `actionDigest` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :action_digest + + # + # Corresponds to the JSON property `stage` + # @return [String] + attr_accessor :stage + + # If set, the client can use this name with + # ByteStream.Read to stream the + # standard error. + # Corresponds to the JSON property `stderrStreamName` + # @return [String] + attr_accessor :stderr_stream_name + + # If set, the client can use this name with + # ByteStream.Read to stream the + # standard output. + # Corresponds to the JSON property `stdoutStreamName` + # @return [String] + attr_accessor :stdout_stream_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_digest = args[:action_digest] if args.key?(:action_digest) + @stage = args[:stage] if args.key?(:stage) + @stderr_stream_name = args[:stderr_stream_name] if args.key?(:stderr_stream_name) + @stdout_stream_name = args[:stdout_stream_name] if args.key?(:stdout_stream_name) + end + end + + # The response message for + # Execution.Execute, + # which will be contained in the response + # field of the + # Operation. + class GoogleDevtoolsRemoteexecutionV1testExecuteResponse + include Google::Apis::Core::Hashable + + # True if the result was served from cache, false if it was executed. + # Corresponds to the JSON property `cachedResult` + # @return [Boolean] + attr_accessor :cached_result + alias_method :cached_result?, :cached_result + + # An ActionResult represents the result of an + # Action being run. + # Corresponds to the JSON property `result` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testActionResult] + attr_accessor :result + + # An optional list of additional log outputs the server wishes to provide. A + # server can use this to return execution-specific logs however it wishes. + # This is intended primarily to make it easier for users to debug issues that + # may be outside of the actual job execution, such as by identifying the + # worker executing the action or by providing logs from the worker's setup + # phase. The keys SHOULD be human readable so that a client can display them + # to a user. + # Corresponds to the JSON property `serverLogs` + # @return [Hash] + attr_accessor :server_logs + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `status` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleRpcStatus] + attr_accessor :status + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cached_result = args[:cached_result] if args.key?(:cached_result) + @result = args[:result] if args.key?(:result) + @server_logs = args[:server_logs] if args.key?(:server_logs) + @status = args[:status] if args.key?(:status) + end + end + + # A `FileNode` represents a single file and associated metadata. + class GoogleDevtoolsRemoteexecutionV1testFileNode + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # True if file is executable, false otherwise. + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The name of the file. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @name = args[:name] if args.key?(:name) + end + end + + # A `LogFile` is a log stored in the CAS. + class GoogleDevtoolsRemoteexecutionV1testLogFile + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # This is a hint as to the purpose of the log, and is set to true if the log + # is human-readable text that can be usefully displayed to a user, and false + # otherwise. For instance, if a command-line client wishes to print the + # server logs to the terminal for a failed action, this allows it to avoid + # displaying a binary file. + # Corresponds to the JSON property `humanReadable` + # @return [Boolean] + attr_accessor :human_readable + alias_method :human_readable?, :human_readable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @human_readable = args[:human_readable] if args.key?(:human_readable) + end + end + + # An `OutputDirectory` is the output in an `ActionResult` corresponding to a + # directory's full contents rather than a single file. + class GoogleDevtoolsRemoteexecutionV1testOutputDirectory + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # The full path of the directory relative to the working directory. The path + # separator is a forward slash `/`. Since this is a relative path, it MUST + # NOT begin with a leading forward slash. The empty string value is allowed, + # and it denotes the entire working directory. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `treeDigest` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :tree_digest + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @path = args[:path] if args.key?(:path) + @tree_digest = args[:tree_digest] if args.key?(:tree_digest) + end + end + + # An `OutputFile` is similar to a + # FileNode, but it is + # tailored for output as part of an `ActionResult`. It allows a full file path + # rather than only a name, and allows the server to include content inline. + # `OutputFile` is binary-compatible with `FileNode`. + class GoogleDevtoolsRemoteexecutionV1testOutputFile + include Google::Apis::Core::Hashable + + # The raw content of the file. + # This field may be used by the server to provide the content of a file + # inline in an + # ActionResult and + # avoid requiring that the client make a separate call to + # [ContentAddressableStorage.GetBlob] to retrieve it. + # The client SHOULD NOT assume that it will get raw content with any request, + # and always be prepared to retrieve it via `digest`. + # Corresponds to the JSON property `content` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :content + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # True if file is executable, false otherwise. + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The full path of the file relative to the input root, including the + # filename. The path separator is a forward slash `/`. Since this is a + # relative path, it MUST NOT begin with a leading forward slash. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @content = args[:content] if args.key?(:content) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @path = args[:path] if args.key?(:path) + end + end + + # An optional Metadata to attach to any RPC request to tell the server about an + # external context of the request. The server may use this for logging or other + # purposes. To use it, the client attaches the header to the call using the + # canonical proto serialization: + # name: google.devtools.remoteexecution.v1test.requestmetadata-bin + # contents: the base64 encoded binary RequestMetadata message. + class GoogleDevtoolsRemoteexecutionV1testRequestMetadata + include Google::Apis::Core::Hashable + + # An identifier that ties multiple requests to the same action. + # For example, multiple requests to the CAS, Action Cache, and Execution + # API are used in order to compile foo.cc. + # Corresponds to the JSON property `actionId` + # @return [String] + attr_accessor :action_id + + # An identifier to tie multiple tool invocations together. For example, + # runs of foo_test, bar_test and baz_test on a post-submit of a given patch. + # Corresponds to the JSON property `correlatedInvocationsId` + # @return [String] + attr_accessor :correlated_invocations_id + + # Details for the tool used to call the API. + # Corresponds to the JSON property `toolDetails` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testToolDetails] + attr_accessor :tool_details + + # An identifier that ties multiple actions together to a final result. + # For example, multiple actions are required to build and run foo_test. + # Corresponds to the JSON property `toolInvocationId` + # @return [String] + attr_accessor :tool_invocation_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_id = args[:action_id] if args.key?(:action_id) + @correlated_invocations_id = args[:correlated_invocations_id] if args.key?(:correlated_invocations_id) + @tool_details = args[:tool_details] if args.key?(:tool_details) + @tool_invocation_id = args[:tool_invocation_id] if args.key?(:tool_invocation_id) + end + end + + # Details for the tool used to call the API. + class GoogleDevtoolsRemoteexecutionV1testToolDetails + include Google::Apis::Core::Hashable + + # Name of the tool, e.g. bazel. + # Corresponds to the JSON property `toolName` + # @return [String] + attr_accessor :tool_name + + # Version of the tool used for the request, e.g. 5.0.3. + # Corresponds to the JSON property `toolVersion` + # @return [String] + attr_accessor :tool_version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @tool_name = args[:tool_name] if args.key?(:tool_name) + @tool_version = args[:tool_version] if args.key?(:tool_version) + end + end + + # A `Tree` contains all the + # Directory protos in a + # single directory Merkle tree, compressed into one message. + class GoogleDevtoolsRemoteexecutionV1testTree + include Google::Apis::Core::Hashable + + # All the child directories: the directories referred to by the root and, + # recursively, all its children. In order to reconstruct the directory tree, + # the client must take the digests of each of the child directories and then + # build up a tree starting from the `root`. + # Corresponds to the JSON property `children` + # @return [Array] + attr_accessor :children + + # A `Directory` represents a directory node in a file tree, containing zero or + # more children FileNodes + # and DirectoryNodes. + # Each `Node` contains its name in the directory, the digest of its content + # (either a file blob or a `Directory` proto), as well as possibly some + # metadata about the file or directory. + # In order to ensure that two equivalent directory trees hash to the same + # value, the following restrictions MUST be obeyed when constructing a + # a `Directory`: + # - Every child in the directory must have a path of exactly one segment. + # Multiple levels of directory hierarchy may not be collapsed. + # - Each child in the directory must have a unique path segment (file name). + # - The files and directories in the directory must each be sorted in + # lexicographical order by path. The path strings must be sorted by code + # point, equivalently, by UTF-8 bytes. + # A `Directory` that obeys the restrictions is said to be in canonical form. + # As an example, the following could be used for a file named `bar` and a + # directory named `foo` with an executable file named `baz` (hashes shortened + # for readability): + # ```json + # // (Directory proto) + # ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # ` + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ``` + # Corresponds to the JSON property `root` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDirectory] + attr_accessor :root + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @children = args[:children] if args.key?(:children) + @root = args[:root] if args.key?(:root) + end + end + + # AdminTemp is a prelimiary set of administration tasks. It's called "Temp" + # because we do not yet know the best way to represent admin tasks; it's + # possible that this will be entirely replaced in later versions of this API. + # If this message proves to be sufficient, it will be renamed in the alpha or + # beta release of this API. + # This message (suitably marshalled into a protobuf.Any) can be used as the + # inline_assignment field in a lease; the lease assignment field should simply + # be `"admin"` in these cases. + # This message is heavily based on Swarming administration tasks from the LUCI + # project (http://github.com/luci/luci-py/appengine/swarming). + class GoogleDevtoolsRemoteworkersV1test2AdminTemp + include Google::Apis::Core::Hashable + + # The argument to the admin action; see `Command` for semantics. + # Corresponds to the JSON property `arg` + # @return [String] + attr_accessor :arg + + # The admin action; see `Command` for legal values. + # Corresponds to the JSON property `command` + # @return [String] + attr_accessor :command + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arg = args[:arg] if args.key?(:arg) + @command = args[:command] if args.key?(:command) + end + end + + # Describes a blob of binary content with its digest. + class GoogleDevtoolsRemoteworkersV1test2Blob + include Google::Apis::Core::Hashable + + # The contents of the blob. + # Corresponds to the JSON property `contents` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :contents + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :digest + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @contents = args[:contents] if args.key?(:contents) + @digest = args[:digest] if args.key?(:digest) + end + end + + # DEPRECATED - use CommandResult instead. + # Describes the actual outputs from the task. + class GoogleDevtoolsRemoteworkersV1test2CommandOutputs + include Google::Apis::Core::Hashable + + # exit_code is only fully reliable if the status' code is OK. If the task + # exceeded its deadline or was cancelled, the process may still produce an + # exit code as it is cancelled, and this will be populated, but a successful + # (zero) is unlikely to be correct unless the status code is OK. + # Corresponds to the JSON property `exitCode` + # @return [Fixnum] + attr_accessor :exit_code + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `outputs` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :outputs + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @exit_code = args[:exit_code] if args.key?(:exit_code) + @outputs = args[:outputs] if args.key?(:outputs) + end + end + + # DEPRECATED - use CommandResult instead. + # Can be used as part of CompleteRequest.metadata, or are part of a more + # sophisticated message. + class GoogleDevtoolsRemoteworkersV1test2CommandOverhead + include Google::Apis::Core::Hashable + + # The elapsed time between calling Accept and Complete. The server will also + # have its own idea of what this should be, but this excludes the overhead of + # the RPCs and the bot response time. + # Corresponds to the JSON property `duration` + # @return [String] + attr_accessor :duration + + # The amount of time *not* spent executing the command (ie + # uploading/downloading files). + # Corresponds to the JSON property `overhead` + # @return [String] + attr_accessor :overhead + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @duration = args[:duration] if args.key?(:duration) + @overhead = args[:overhead] if args.key?(:overhead) + end + end + + # All information about the execution of a command, suitable for providing as + # the Bots interface's `Lease.result` field. + class GoogleDevtoolsRemoteworkersV1test2CommandResult + include Google::Apis::Core::Hashable + + # The elapsed time between calling Accept and Complete. The server will also + # have its own idea of what this should be, but this excludes the overhead of + # the RPCs and the bot response time. + # Corresponds to the JSON property `duration` + # @return [String] + attr_accessor :duration + + # The exit code of the process. An exit code of "0" should only be trusted if + # `status` has a code of OK (otherwise it may simply be unset). + # Corresponds to the JSON property `exitCode` + # @return [Fixnum] + attr_accessor :exit_code + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `outputs` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :outputs + + # The amount of time *not* spent executing the command (ie + # uploading/downloading files). + # Corresponds to the JSON property `overhead` + # @return [String] + attr_accessor :overhead + + # Implementation-dependent statistics about the task. Both servers and bots + # may define messages which can be encoded here; bots are free to provide + # statistics in multiple formats, and servers are free to choose one or more + # of the values to process and ignore others. In particular, it is *not* + # considered an error for the bot to provide the server with a field that it + # doesn't know about. + # Corresponds to the JSON property `statistics` + # @return [Array>] + attr_accessor :statistics + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `status` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleRpcStatus] + attr_accessor :status + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @duration = args[:duration] if args.key?(:duration) + @exit_code = args[:exit_code] if args.key?(:exit_code) + @outputs = args[:outputs] if args.key?(:outputs) + @overhead = args[:overhead] if args.key?(:overhead) + @statistics = args[:statistics] if args.key?(:statistics) + @status = args[:status] if args.key?(:status) + end + end + + # Describes a shell-style task to execute, suitable for providing as the Bots + # interface's `Lease.payload` field. + class GoogleDevtoolsRemoteworkersV1test2CommandTask + include Google::Apis::Core::Hashable + + # Describes the expected outputs of the command. + # Corresponds to the JSON property `expectedOutputs` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs] + attr_accessor :expected_outputs + + # Describes the inputs to a shell-style task. + # Corresponds to the JSON property `inputs` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs] + attr_accessor :inputs + + # Describes the timeouts associated with this task. + # Corresponds to the JSON property `timeouts` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts] + attr_accessor :timeouts + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @expected_outputs = args[:expected_outputs] if args.key?(:expected_outputs) + @inputs = args[:inputs] if args.key?(:inputs) + @timeouts = args[:timeouts] if args.key?(:timeouts) + end + end + + # Describes the inputs to a shell-style task. + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs + include Google::Apis::Core::Hashable + + # The command itself to run (e.g., argv). + # This field should be passed directly to the underlying operating system, + # and so it must be sensible to that operating system. For example, on + # Windows, the first argument might be "C:\Windows\System32\ping.exe" - + # that is, using drive letters and backslashes. A command for a *nix + # system, on the other hand, would use forward slashes. + # All other fields in the RWAPI must consistently use forward slashes, + # since those fields may be interpretted by both the service and the bot. + # Corresponds to the JSON property `arguments` + # @return [Array] + attr_accessor :arguments + + # All environment variables required by the task. + # Corresponds to the JSON property `environmentVariables` + # @return [Array] + attr_accessor :environment_variables + + # The input filesystem to be set up prior to the task beginning. The + # contents should be a repeated set of FileMetadata messages though other + # formats are allowed if better for the implementation (eg, a LUCI-style + # .isolated file). + # This field is repeated since implementations might want to cache the + # metadata, in which case it may be useful to break up portions of the + # filesystem that change frequently (eg, specific input files) from those + # that don't (eg, standard header files). + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + # Inline contents for blobs expected to be needed by the bot to execute the + # task. For example, contents of entries in `files` or blobs that are + # indirectly referenced by an entry there. + # The bot should check against this list before downloading required task + # inputs to reduce the number of communications between itself and the + # remote CAS server. + # Corresponds to the JSON property `inlineBlobs` + # @return [Array] + attr_accessor :inline_blobs + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arguments = args[:arguments] if args.key?(:arguments) + @environment_variables = args[:environment_variables] if args.key?(:environment_variables) + @files = args[:files] if args.key?(:files) + @inline_blobs = args[:inline_blobs] if args.key?(:inline_blobs) + end + end + + # An environment variable required by this task. + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable + include Google::Apis::Core::Hashable + + # The envvar name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The envvar value. + # Corresponds to the JSON property `value` + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # Describes the expected outputs of the command. + class GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs + include Google::Apis::Core::Hashable + + # A list of expected directories, relative to the execution root. All paths + # MUST be delimited by forward slashes. + # Corresponds to the JSON property `directories` + # @return [Array] + attr_accessor :directories + + # A list of expected files, relative to the execution root. All paths + # MUST be delimited by forward slashes. + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + # The destination to which any stderr should be sent. The method by which + # the bot should send the stream contents to that destination is not + # defined in this API. As examples, the destination could be a file + # referenced in the `files` field in this message, or it could be a URI + # that must be written via the ByteStream API. + # Corresponds to the JSON property `stderrDestination` + # @return [String] + attr_accessor :stderr_destination + + # The destination to which any stdout should be sent. The method by which + # the bot should send the stream contents to that destination is not + # defined in this API. As examples, the destination could be a file + # referenced in the `files` field in this message, or it could be a URI + # that must be written via the ByteStream API. + # Corresponds to the JSON property `stdoutDestination` + # @return [String] + attr_accessor :stdout_destination + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @directories = args[:directories] if args.key?(:directories) + @files = args[:files] if args.key?(:files) + @stderr_destination = args[:stderr_destination] if args.key?(:stderr_destination) + @stdout_destination = args[:stdout_destination] if args.key?(:stdout_destination) + end + end + + # Describes the timeouts associated with this task. + class GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts + include Google::Apis::Core::Hashable + + # This specifies the maximum time that the task can run, excluding the + # time required to download inputs or upload outputs. That is, the worker + # will terminate the task if it runs longer than this. + # Corresponds to the JSON property `execution` + # @return [String] + attr_accessor :execution + + # This specifies the maximum amount of time the task can be idle - that is, + # go without generating some output in either stdout or stderr. If the + # process is silent for more than the specified time, the worker will + # terminate the task. + # Corresponds to the JSON property `idle` + # @return [String] + attr_accessor :idle + + # If the execution or IO timeouts are exceeded, the worker will try to + # gracefully terminate the task and return any existing logs. However, + # tasks may be hard-frozen in which case this process will fail. This + # timeout specifies how long to wait for a terminated task to shut down + # gracefully (e.g. via SIGTERM) before we bring down the hammer (e.g. + # SIGKILL on *nix, CTRL_BREAK_EVENT on Windows). + # Corresponds to the JSON property `shutdown` + # @return [String] + attr_accessor :shutdown + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @execution = args[:execution] if args.key?(:execution) + @idle = args[:idle] if args.key?(:idle) + @shutdown = args[:shutdown] if args.key?(:shutdown) + end + end + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + class GoogleDevtoolsRemoteworkersV1test2Digest + include Google::Apis::Core::Hashable + + # A string-encoded hash (eg "1a2b3c", not the byte array [0x1a, 0x2b, 0x3c]) + # using an implementation-defined hash algorithm (eg SHA-256). + # Corresponds to the JSON property `hash` + # @return [String] + attr_accessor :hash_prop + + # The size of the contents. While this is not strictly required as part of an + # identifier (after all, any given hash will have exactly one canonical + # size), it's useful in almost all cases when one might want to send or + # retrieve blobs of content and is included here for this reason. + # Corresponds to the JSON property `sizeBytes` + # @return [Fixnum] + attr_accessor :size_bytes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @hash_prop = args[:hash_prop] if args.key?(:hash_prop) + @size_bytes = args[:size_bytes] if args.key?(:size_bytes) + end + end + + # The contents of a directory. Similar to the equivalent message in the Remote + # Execution API. + class GoogleDevtoolsRemoteworkersV1test2Directory + include Google::Apis::Core::Hashable + + # Any subdirectories + # Corresponds to the JSON property `directories` + # @return [Array] + attr_accessor :directories + + # The files in this directory + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @directories = args[:directories] if args.key?(:directories) + @files = args[:files] if args.key?(:files) + end + end + + # The metadata for a directory. Similar to the equivalent message in the Remote + # Execution API. + class GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata + include Google::Apis::Core::Hashable + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :digest + + # The path of the directory, as in FileMetadata.path. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @path = args[:path] if args.key?(:path) + end + end + + # The metadata for a file. Similar to the equivalent message in the Remote + # Execution API. + class GoogleDevtoolsRemoteworkersV1test2FileMetadata + include Google::Apis::Core::Hashable + + # If the file is small enough, its contents may also or alternatively be + # listed here. + # Corresponds to the JSON property `contents` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :contents + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :digest + + # Properties of the file + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The path of this file. If this message is part of the + # CommandOutputs.outputs fields, the path is relative to the execution root + # and must correspond to an entry in CommandTask.outputs.files. If this + # message is part of a Directory message, then the path is relative to the + # root of that directory. All paths MUST be delimited by forward slashes. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @contents = args[:contents] if args.key?(:contents) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @path = args[:path] if args.key?(:path) + end + end + + # The request message for Operations.CancelOperation. + class GoogleLongrunningCancelOperationRequest + include Google::Apis::Core::Hashable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + end + end + + # The response message for Operations.ListOperations. + class GoogleLongrunningListOperationsResponse + include Google::Apis::Core::Hashable + + # The standard List next-page token. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # A list of operations that matches the specified filter in the request. + # Corresponds to the JSON property `operations` + # @return [Array] + attr_accessor :operations + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @operations = args[:operations] if args.key?(:operations) + end + end + + # This resource represents a long-running operation that is the result of a + # network API call. + class GoogleLongrunningOperation + include Google::Apis::Core::Hashable + + # 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. + # Corresponds to the JSON property `done` + # @return [Boolean] + attr_accessor :done + alias_method :done?, :done + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `error` + # @return [Google::Apis::RemotebuildexecutionV1::GoogleRpcStatus] + attr_accessor :error + + # 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. + # Corresponds to the JSON property `metadata` + # @return [Hash] + attr_accessor :metadata + + # 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 have the format of `operations/some/unique/name`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The normal response of the operation in case of success. If the original + # method returns no data on success, such as `Delete`, the response is + # `google.protobuf.Empty`. If the original method is standard + # `Get`/`Create`/`Update`, the response should be the resource. For other + # methods, the response should have the type `XxxResponse`, where `Xxx` + # is the original method name. For example, if the original method name + # is `TakeSnapshot()`, the inferred response type is + # `TakeSnapshotResponse`. + # Corresponds to the JSON property `response` + # @return [Hash] + attr_accessor :response + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @done = args[:done] if args.key?(:done) + @error = args[:error] if args.key?(:error) + @metadata = args[:metadata] if args.key?(:metadata) + @name = args[:name] if args.key?(:name) + @response = args[:response] if args.key?(:response) + end + end + + # 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); + # ` + # The JSON representation for `Empty` is empty JSON object ````. + class GoogleProtobufEmpty + include Google::Apis::Core::Hashable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + end + end + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + class GoogleRpcStatus + include Google::Apis::Core::Hashable + + # The status code, which should be an enum value of google.rpc.Code. + # Corresponds to the JSON property `code` + # @return [Fixnum] + attr_accessor :code + + # A list of messages that carry the error details. There is a common set of + # message types for APIs to use. + # Corresponds to the JSON property `details` + # @return [Array>] + attr_accessor :details + + # 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. + # Corresponds to the JSON property `message` + # @return [String] + attr_accessor :message + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @code = args[:code] if args.key?(:code) + @details = args[:details] if args.key?(:details) + @message = args[:message] if args.key?(:message) + end + end + + # A Change indicates the most recent state of an element. + class GoogleWatcherV1Change + include Google::Apis::Core::Hashable + + # If true, this Change is followed by more Changes that are in the same group + # as this Change. + # Corresponds to the JSON property `continued` + # @return [Boolean] + attr_accessor :continued + alias_method :continued?, :continued + + # The actual change data. This field is present only when `state() == EXISTS` + # or `state() == ERROR`. Please see google.protobuf.Any about how to use + # the Any type. + # Corresponds to the JSON property `data` + # @return [Hash] + attr_accessor :data + + # Name of the element, interpreted relative to the entity's actual + # name. "" refers to the entity itself. The element name is a valid + # UTF-8 string. + # Corresponds to the JSON property `element` + # @return [String] + attr_accessor :element + + # If present, provides a compact representation of all the messages that have + # been received by the caller for the given entity, e.g., it could be a + # sequence number or a multi-part timestamp/version vector. This marker can + # be provided in the Request message, allowing the caller to resume the stream + # watching at a specific point without fetching the initial state. + # Corresponds to the JSON property `resumeMarker` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :resume_marker + + # The state of the `element`. + # Corresponds to the JSON property `state` + # @return [String] + attr_accessor :state + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @continued = args[:continued] if args.key?(:continued) + @data = args[:data] if args.key?(:data) + @element = args[:element] if args.key?(:element) + @resume_marker = args[:resume_marker] if args.key?(:resume_marker) + @state = args[:state] if args.key?(:state) + end + end + + # A batch of Change messages. + class GoogleWatcherV1ChangeBatch + include Google::Apis::Core::Hashable + + # A list of Change messages. + # Corresponds to the JSON property `changes` + # @return [Array] + attr_accessor :changes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @changes = args[:changes] if args.key?(:changes) + end + end + end + end +end diff --git a/generated/google/apis/remotebuildexecution_v1/representations.rb b/generated/google/apis/remotebuildexecution_v1/representations.rb new file mode 100644 index 000000000..50644f888 --- /dev/null +++ b/generated/google/apis/remotebuildexecution_v1/representations.rb @@ -0,0 +1,1196 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module RemotebuildexecutionV1 + + class BuildBazelRemoteExecutionV2Action + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ActionResult + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Command + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2CommandEnvironmentVariable + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Digest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Directory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2DirectoryNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ExecuteOperationMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ExecuteResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ExecutedActionMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2FileNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2LogFile + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2OutputDirectory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2OutputFile + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2OutputSymlink + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Platform + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2PlatformProperty + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2RequestMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2SymlinkNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ToolDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Tree + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleBytestreamMedia + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildbotCommandDurations + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildbotCommandEvents + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testActionResult + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testCommand + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testDigest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testDirectory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testDirectoryNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testExecuteResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testFileNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testLogFile + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testOutputDirectory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testOutputFile + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testRequestMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testToolDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testTree + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2AdminTemp + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2Blob + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandOutputs + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandOverhead + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandResult + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTask + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2Digest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2Directory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2FileMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleLongrunningCancelOperationRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleLongrunningListOperationsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleLongrunningOperation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleProtobufEmpty + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleRpcStatus + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleWatcherV1Change + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleWatcherV1ChangeBatch + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Action + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :command_digest, as: 'commandDigest', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest::Representation + + property :do_not_cache, as: 'doNotCache' + property :input_root_digest, as: 'inputRootDigest', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest::Representation + + property :timeout, as: 'timeout' + end + end + + class BuildBazelRemoteExecutionV2ActionResult + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :execution_metadata, as: 'executionMetadata', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2ExecutedActionMetadata, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2ExecutedActionMetadata::Representation + + property :exit_code, as: 'exitCode' + collection :output_directories, as: 'outputDirectories', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2OutputDirectory, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2OutputDirectory::Representation + + collection :output_directory_symlinks, as: 'outputDirectorySymlinks', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2OutputSymlink, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2OutputSymlink::Representation + + collection :output_file_symlinks, as: 'outputFileSymlinks', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2OutputSymlink, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2OutputSymlink::Representation + + collection :output_files, as: 'outputFiles', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2OutputFile, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2OutputFile::Representation + + property :stderr_digest, as: 'stderrDigest', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest::Representation + + property :stderr_raw, :base64 => true, as: 'stderrRaw' + property :stdout_digest, as: 'stdoutDigest', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest::Representation + + property :stdout_raw, :base64 => true, as: 'stdoutRaw' + end + end + + class BuildBazelRemoteExecutionV2Command + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :arguments, as: 'arguments' + collection :environment_variables, as: 'environmentVariables', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2CommandEnvironmentVariable, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2CommandEnvironmentVariable::Representation + + collection :output_directories, as: 'outputDirectories' + collection :output_files, as: 'outputFiles' + property :platform, as: 'platform', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Platform, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Platform::Representation + + property :working_directory, as: 'workingDirectory' + end + end + + class BuildBazelRemoteExecutionV2CommandEnvironmentVariable + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :value, as: 'value' + end + end + + class BuildBazelRemoteExecutionV2Digest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :hash_prop, as: 'hash' + property :size_bytes, :numeric_string => true, as: 'sizeBytes' + end + end + + class BuildBazelRemoteExecutionV2Directory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :directories, as: 'directories', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2DirectoryNode, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2DirectoryNode::Representation + + collection :files, as: 'files', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2FileNode, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2FileNode::Representation + + collection :symlinks, as: 'symlinks', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2SymlinkNode, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2SymlinkNode::Representation + + end + end + + class BuildBazelRemoteExecutionV2DirectoryNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest::Representation + + property :name, as: 'name' + end + end + + class BuildBazelRemoteExecutionV2ExecuteOperationMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_digest, as: 'actionDigest', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest::Representation + + property :stage, as: 'stage' + property :stderr_stream_name, as: 'stderrStreamName' + property :stdout_stream_name, as: 'stdoutStreamName' + end + end + + class BuildBazelRemoteExecutionV2ExecuteResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cached_result, as: 'cachedResult' + property :result, as: 'result', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2ActionResult, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2ActionResult::Representation + + hash :server_logs, as: 'serverLogs', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2LogFile, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2LogFile::Representation + + property :status, as: 'status', class: Google::Apis::RemotebuildexecutionV1::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV1::GoogleRpcStatus::Representation + + end + end + + class BuildBazelRemoteExecutionV2ExecutedActionMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :execution_completed_timestamp, as: 'executionCompletedTimestamp' + property :execution_start_timestamp, as: 'executionStartTimestamp' + property :input_fetch_completed_timestamp, as: 'inputFetchCompletedTimestamp' + property :input_fetch_start_timestamp, as: 'inputFetchStartTimestamp' + property :output_upload_completed_timestamp, as: 'outputUploadCompletedTimestamp' + property :output_upload_start_timestamp, as: 'outputUploadStartTimestamp' + property :queued_timestamp, as: 'queuedTimestamp' + property :worker, as: 'worker' + property :worker_completed_timestamp, as: 'workerCompletedTimestamp' + property :worker_start_timestamp, as: 'workerStartTimestamp' + end + end + + class BuildBazelRemoteExecutionV2FileNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest::Representation + + property :is_executable, as: 'isExecutable' + property :name, as: 'name' + end + end + + class BuildBazelRemoteExecutionV2LogFile + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest::Representation + + property :human_readable, as: 'humanReadable' + end + end + + class BuildBazelRemoteExecutionV2OutputDirectory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :path, as: 'path' + property :tree_digest, as: 'treeDigest', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest::Representation + + end + end + + class BuildBazelRemoteExecutionV2OutputFile + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Digest::Representation + + property :is_executable, as: 'isExecutable' + property :path, as: 'path' + end + end + + class BuildBazelRemoteExecutionV2OutputSymlink + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :path, as: 'path' + property :target, as: 'target' + end + end + + class BuildBazelRemoteExecutionV2Platform + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :properties, as: 'properties', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2PlatformProperty, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2PlatformProperty::Representation + + end + end + + class BuildBazelRemoteExecutionV2PlatformProperty + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :value, as: 'value' + end + end + + class BuildBazelRemoteExecutionV2RequestMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_id, as: 'actionId' + property :correlated_invocations_id, as: 'correlatedInvocationsId' + property :tool_details, as: 'toolDetails', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2ToolDetails, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2ToolDetails::Representation + + property :tool_invocation_id, as: 'toolInvocationId' + end + end + + class BuildBazelRemoteExecutionV2SymlinkNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :target, as: 'target' + end + end + + class BuildBazelRemoteExecutionV2ToolDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :tool_name, as: 'toolName' + property :tool_version, as: 'toolVersion' + end + end + + class BuildBazelRemoteExecutionV2Tree + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :children, as: 'children', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Directory, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Directory::Representation + + property :root, as: 'root', class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Directory, decorator: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Directory::Representation + + end + end + + class GoogleBytestreamMedia + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :resource_name, as: 'resourceName' + end + end + + class GoogleDevtoolsRemotebuildbotCommandDurations + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :docker_prep, as: 'dockerPrep' + property :download, as: 'download' + property :execution, as: 'execution' + property :iso_prep_done, as: 'isoPrepDone' + property :overall, as: 'overall' + property :stdout, as: 'stdout' + property :upload, as: 'upload' + end + end + + class GoogleDevtoolsRemotebuildbotCommandEvents + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :docker_cache_hit, as: 'dockerCacheHit' + property :num_errors, :numeric_string => true, as: 'numErrors' + property :num_warnings, :numeric_string => true, as: 'numWarnings' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :instance, as: 'instance', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance::Representation + + property :instance_id, as: 'instanceId' + property :parent, as: 'parent' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :parent, as: 'parent' + property :pool_id, as: 'poolId' + property :worker_pool, as: 'workerPool', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool::Representation + + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :location, as: 'location' + property :name, as: 'name' + property :state, as: 'state' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :parent, as: 'parent' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :instances, as: 'instances', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance::Representation + + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :parent, as: 'parent' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :worker_pools, as: 'workerPools', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool::Representation + + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :update_mask, as: 'updateMask' + property :worker_pool, as: 'workerPool', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool::Representation + + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :disk_size_gb, :numeric_string => true, as: 'diskSizeGb' + property :disk_type, as: 'diskType' + property :machine_type, as: 'machineType' + property :min_cpu_platform, as: 'minCpuPlatform' + property :reserved, as: 'reserved' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :state, as: 'state' + property :worker_config, as: 'workerConfig', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig::Representation + + property :worker_count, :numeric_string => true, as: 'workerCount' + end + end + + class GoogleDevtoolsRemoteexecutionV1testActionResult + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :exit_code, as: 'exitCode' + collection :output_directories, as: 'outputDirectories', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testOutputDirectory, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testOutputDirectory::Representation + + collection :output_files, as: 'outputFiles', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testOutputFile, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testOutputFile::Representation + + property :stderr_digest, as: 'stderrDigest', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :stderr_raw, :base64 => true, as: 'stderrRaw' + property :stdout_digest, as: 'stdoutDigest', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :stdout_raw, :base64 => true, as: 'stdoutRaw' + end + end + + class GoogleDevtoolsRemoteexecutionV1testCommand + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :arguments, as: 'arguments' + collection :environment_variables, as: 'environmentVariables', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable::Representation + + end + end + + class GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :value, as: 'value' + end + end + + class GoogleDevtoolsRemoteexecutionV1testDigest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :hash_prop, as: 'hash' + property :size_bytes, :numeric_string => true, as: 'sizeBytes' + end + end + + class GoogleDevtoolsRemoteexecutionV1testDirectory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :directories, as: 'directories', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDirectoryNode, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDirectoryNode::Representation + + collection :files, as: 'files', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testFileNode, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testFileNode::Representation + + end + end + + class GoogleDevtoolsRemoteexecutionV1testDirectoryNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_digest, as: 'actionDigest', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :stage, as: 'stage' + property :stderr_stream_name, as: 'stderrStreamName' + property :stdout_stream_name, as: 'stdoutStreamName' + end + end + + class GoogleDevtoolsRemoteexecutionV1testExecuteResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cached_result, as: 'cachedResult' + property :result, as: 'result', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testActionResult, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testActionResult::Representation + + hash :server_logs, as: 'serverLogs', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testLogFile, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testLogFile::Representation + + property :status, as: 'status', class: Google::Apis::RemotebuildexecutionV1::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV1::GoogleRpcStatus::Representation + + end + end + + class GoogleDevtoolsRemoteexecutionV1testFileNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :is_executable, as: 'isExecutable' + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemoteexecutionV1testLogFile + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :human_readable, as: 'humanReadable' + end + end + + class GoogleDevtoolsRemoteexecutionV1testOutputDirectory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :path, as: 'path' + property :tree_digest, as: 'treeDigest', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + end + end + + class GoogleDevtoolsRemoteexecutionV1testOutputFile + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :content, :base64 => true, as: 'content' + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :is_executable, as: 'isExecutable' + property :path, as: 'path' + end + end + + class GoogleDevtoolsRemoteexecutionV1testRequestMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_id, as: 'actionId' + property :correlated_invocations_id, as: 'correlatedInvocationsId' + property :tool_details, as: 'toolDetails', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testToolDetails, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testToolDetails::Representation + + property :tool_invocation_id, as: 'toolInvocationId' + end + end + + class GoogleDevtoolsRemoteexecutionV1testToolDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :tool_name, as: 'toolName' + property :tool_version, as: 'toolVersion' + end + end + + class GoogleDevtoolsRemoteexecutionV1testTree + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :children, as: 'children', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDirectory, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDirectory::Representation + + property :root, as: 'root', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDirectory, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteexecutionV1testDirectory::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2AdminTemp + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :arg, as: 'arg' + property :command, as: 'command' + end + end + + class GoogleDevtoolsRemoteworkersV1test2Blob + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :contents, :base64 => true, as: 'contents' + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandOutputs + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :exit_code, as: 'exitCode' + property :outputs, as: 'outputs', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandOverhead + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :duration, as: 'duration' + property :overhead, as: 'overhead' + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandResult + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :duration, as: 'duration' + property :exit_code, as: 'exitCode' + property :outputs, as: 'outputs', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + property :overhead, as: 'overhead' + collection :statistics, as: 'statistics' + property :status, as: 'status', class: Google::Apis::RemotebuildexecutionV1::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV1::GoogleRpcStatus::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTask + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :expected_outputs, as: 'expectedOutputs', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs::Representation + + property :inputs, as: 'inputs', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs::Representation + + property :timeouts, as: 'timeouts', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :arguments, as: 'arguments' + collection :environment_variables, as: 'environmentVariables', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable::Representation + + collection :files, as: 'files', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + collection :inline_blobs, as: 'inlineBlobs', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Blob, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Blob::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :value, as: 'value' + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :directories, as: 'directories' + collection :files, as: 'files' + property :stderr_destination, as: 'stderrDestination' + property :stdout_destination, as: 'stdoutDestination' + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :execution, as: 'execution' + property :idle, as: 'idle' + property :shutdown, as: 'shutdown' + end + end + + class GoogleDevtoolsRemoteworkersV1test2Digest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :hash_prop, as: 'hash' + property :size_bytes, :numeric_string => true, as: 'sizeBytes' + end + end + + class GoogleDevtoolsRemoteworkersV1test2Directory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :directories, as: 'directories', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata::Representation + + collection :files, as: 'files', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2FileMetadata, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2FileMetadata::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + property :path, as: 'path' + end + end + + class GoogleDevtoolsRemoteworkersV1test2FileMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :contents, :base64 => true, as: 'contents' + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV1::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + property :is_executable, as: 'isExecutable' + property :path, as: 'path' + end + end + + class GoogleLongrunningCancelOperationRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + end + end + + class GoogleLongrunningListOperationsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :next_page_token, as: 'nextPageToken' + collection :operations, as: 'operations', class: Google::Apis::RemotebuildexecutionV1::GoogleLongrunningOperation, decorator: Google::Apis::RemotebuildexecutionV1::GoogleLongrunningOperation::Representation + + end + end + + class GoogleLongrunningOperation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :done, as: 'done' + property :error, as: 'error', class: Google::Apis::RemotebuildexecutionV1::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV1::GoogleRpcStatus::Representation + + hash :metadata, as: 'metadata' + property :name, as: 'name' + hash :response, as: 'response' + end + end + + class GoogleProtobufEmpty + # @private + class Representation < Google::Apis::Core::JsonRepresentation + end + end + + class GoogleRpcStatus + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :code, as: 'code' + collection :details, as: 'details' + property :message, as: 'message' + end + end + + class GoogleWatcherV1Change + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :continued, as: 'continued' + hash :data, as: 'data' + property :element, as: 'element' + property :resume_marker, :base64 => true, as: 'resumeMarker' + property :state, as: 'state' + end + end + + class GoogleWatcherV1ChangeBatch + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :changes, as: 'changes', class: Google::Apis::RemotebuildexecutionV1::GoogleWatcherV1Change, decorator: Google::Apis::RemotebuildexecutionV1::GoogleWatcherV1Change::Representation + + end + end + end + end +end diff --git a/generated/google/apis/remotebuildexecution_v1/service.rb b/generated/google/apis/remotebuildexecution_v1/service.rb new file mode 100644 index 000000000..169c49ce8 --- /dev/null +++ b/generated/google/apis/remotebuildexecution_v1/service.rb @@ -0,0 +1,374 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module RemotebuildexecutionV1 + # Remote Build Execution API + # + # Supplies a Remote Execution API service for tools such as bazel. + # + # @example + # require 'google/apis/remotebuildexecution_v1' + # + # Remotebuildexecution = Google::Apis::RemotebuildexecutionV1 # Alias the module + # service = Remotebuildexecution::RemoteBuildExecutionService.new + # + # @see https://cloud.google.com/remote-build-execution/docs/ + class RemoteBuildExecutionService < Google::Apis::Core::BaseService + # @return [String] + # 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. + attr_accessor :key + + # @return [String] + # 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. + attr_accessor :quota_user + + def initialize + super('https://remotebuildexecution.googleapis.com/', '') + @batch_path = 'batch' + end + + # Downloads media. Download is supported + # on the URI `/v1/media/`+name`?alt=media`. + # @param [String] resource_name + # Name of the media that is being downloaded. See + # ReadRequest.resource_name. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [IO, String] download_dest + # IO stream or filename to receive content download + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1::GoogleBytestreamMedia] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1::GoogleBytestreamMedia] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def download_medium(resource_name, fields: nil, quota_user: nil, download_dest: nil, options: nil, &block) + if download_dest.nil? + command = make_simple_command(:get, 'v1/media/{+resourceName}', options) + else + command = make_download_command(:get, 'v1/media/{+resourceName}', options) + command.download_dest = download_dest + end + command.response_representation = Google::Apis::RemotebuildexecutionV1::GoogleBytestreamMedia::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1::GoogleBytestreamMedia + command.params['resourceName'] = resource_name unless resource_name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Uploads media. Upload is supported on + # the URI `/upload/v1/media/`+name``. + # @param [String] resource_name + # Name of the media that is being downloaded. See + # ReadRequest.resource_name. + # @param [Google::Apis::RemotebuildexecutionV1::GoogleBytestreamMedia] google_bytestream_media_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [IO, String] upload_source + # IO stream or filename containing content to upload + # @param [String] content_type + # Content type of the uploaded content. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1::GoogleBytestreamMedia] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1::GoogleBytestreamMedia] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def upload_medium(resource_name, google_bytestream_media_object = nil, fields: nil, quota_user: nil, upload_source: nil, content_type: nil, options: nil, &block) + if upload_source.nil? + command = make_simple_command(:post, 'v1/media/{+resourceName}', options) + else + command = make_upload_command(:post, 'v1/media/{+resourceName}', options) + command.upload_source = upload_source + command.upload_content_type = content_type + end + command.request_representation = Google::Apis::RemotebuildexecutionV1::GoogleBytestreamMedia::Representation + command.request_object = google_bytestream_media_object + command.response_representation = Google::Apis::RemotebuildexecutionV1::GoogleBytestreamMedia::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1::GoogleBytestreamMedia + command.params['resourceName'] = resource_name unless resource_name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # 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`. + # @param [String] name + # The name of the operation resource to be cancelled. + # @param [Google::Apis::RemotebuildexecutionV1::GoogleLongrunningCancelOperationRequest] google_longrunning_cancel_operation_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1::GoogleProtobufEmpty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1::GoogleProtobufEmpty] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def cancel_operation(name, google_longrunning_cancel_operation_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+name}:cancel', options) + command.request_representation = Google::Apis::RemotebuildexecutionV1::GoogleLongrunningCancelOperationRequest::Representation + command.request_object = google_longrunning_cancel_operation_request_object + command.response_representation = Google::Apis::RemotebuildexecutionV1::GoogleProtobufEmpty::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1::GoogleProtobufEmpty + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # 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`. + # @param [String] name + # The name of the operation resource to be deleted. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1::GoogleProtobufEmpty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1::GoogleProtobufEmpty] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def delete_operation(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:delete, 'v1/{+name}', options) + command.response_representation = Google::Apis::RemotebuildexecutionV1::GoogleProtobufEmpty::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1::GoogleProtobufEmpty + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists operations that match the specified filter in the request. If the + # server doesn't support this method, it returns `UNIMPLEMENTED`. + # NOTE: the `name` binding allows API services to override the binding + # to use different resource name schemes, such as `users/*/operations`. To + # override the binding, API services can add a binding such as + # `"/v1/`name=users/*`/operations"` to their service configuration. + # For backwards compatibility, the default name includes the operations + # collection id, however overriding users must ensure the name binding + # is the parent resource, without the operations collection id. + # @param [String] name + # The name of the operation's parent resource. + # @param [String] filter + # The standard list filter. + # @param [Fixnum] page_size + # The standard list page size. + # @param [String] page_token + # The standard list page token. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1::GoogleLongrunningListOperationsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1::GoogleLongrunningListOperationsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_operations(name, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}', options) + command.response_representation = Google::Apis::RemotebuildexecutionV1::GoogleLongrunningListOperationsResponse::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1::GoogleLongrunningListOperationsResponse + command.params['name'] = name unless name.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # 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. + # @param [String] name + # The name of the operation resource. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1::GoogleLongrunningOperation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1::GoogleLongrunningOperation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_operation(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}', options) + command.response_representation = Google::Apis::RemotebuildexecutionV1::GoogleLongrunningOperation::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1::GoogleLongrunningOperation + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Start a streaming RPC to get watch information from the server. + # @param [String] resume_marker + # The `resume_marker` specifies how much of the existing underlying state is + # delivered to the client when the watch request is received by the + # system. The client can set this marker in one of the following ways to get + # different semantics: + # * Parameter is not specified or has the value "". + # Semantics: Fetch initial state. + # The client wants the entity's initial state to be delivered. See the + # description in "Initial State". + # * Parameter is set to the string "now" (UTF-8 encoding). + # Semantics: Fetch new changes only. + # The client just wants to get the changes received by the system after + # the watch point. The system may deliver changes from before the watch + # point as well. + # * Parameter is set to a value received in an earlier + # `Change.resume_marker` field while watching the same entity. + # Semantics: Resume from a specific point. + # The client wants to receive the changes from a specific point; this + # value must correspond to a value received in the `Change.resume_marker` + # field. The system may deliver changes from before the `resume_marker` + # as well. If the system cannot resume the stream from this point (e.g., + # if it is too far behind in the stream), it can raise the + # `FAILED_PRECONDITION` error. + # An implementation MUST support an unspecified parameter and the + # empty string "" marker (initial state fetching) and the "now" marker. + # It need not support resuming from a specific point. + # @param [String] target + # The `target` value **must** be a valid URL path pointing to an entity + # to watch. Note that the service name **must** be + # removed from the target field (e.g., the target field must say + # "/foo/bar", not "myservice.googleapis.com/foo/bar"). A client is + # also allowed to pass system-specific parameters in the URL that + # are only obeyed by some implementations. Some parameters will be + # implementation-specific. However, some have predefined meaning + # and are listed here: + # * recursive = true|false [default=false] + # If set to true, indicates that the client wants to watch all elements + # of entities in the subtree rooted at the entity's name in `target`. For + # descendants that are not the immediate children of the target, the + # `Change.element` will contain slashes. + # Note that some namespaces and entities will not support recursive + # watching. When watching such an entity, a client must not set recursive + # to true. Otherwise, it will receive an `UNIMPLEMENTED` error. + # Normal URL encoding must be used inside `target`. For example, if a query + # parameter name or value, or the non-query parameter portion of `target` + # contains a special character, it must be %-encoded. We recommend that + # clients and servers use their runtime's URL library to produce and consume + # target values. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1::GoogleWatcherV1ChangeBatch] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1::GoogleWatcherV1ChangeBatch] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def watch(resume_marker: nil, target: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1:watch', options) + command.response_representation = Google::Apis::RemotebuildexecutionV1::GoogleWatcherV1ChangeBatch::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1::GoogleWatcherV1ChangeBatch + command.query['resumeMarker'] = resume_marker unless resume_marker.nil? + command.query['target'] = target unless target.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + protected + + def apply_command_defaults(command) + command.query['key'] = key unless key.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + end + end + end + end +end diff --git a/generated/google/apis/remotebuildexecution_v1alpha.rb b/generated/google/apis/remotebuildexecution_v1alpha.rb new file mode 100644 index 000000000..c6a30ec19 --- /dev/null +++ b/generated/google/apis/remotebuildexecution_v1alpha.rb @@ -0,0 +1,34 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/remotebuildexecution_v1alpha/service.rb' +require 'google/apis/remotebuildexecution_v1alpha/classes.rb' +require 'google/apis/remotebuildexecution_v1alpha/representations.rb' + +module Google + module Apis + # Remote Build Execution API + # + # Supplies a Remote Execution API service for tools such as bazel. + # + # @see https://cloud.google.com/remote-build-execution/docs/ + module RemotebuildexecutionV1alpha + VERSION = 'V1alpha' + REVISION = '20190103' + + # View and manage your data across Google Cloud Platform services + AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' + end + end +end diff --git a/generated/google/apis/remotebuildexecution_v1alpha/classes.rb b/generated/google/apis/remotebuildexecution_v1alpha/classes.rb new file mode 100644 index 000000000..29ee9ef5d --- /dev/null +++ b/generated/google/apis/remotebuildexecution_v1alpha/classes.rb @@ -0,0 +1,3709 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module RemotebuildexecutionV1alpha + + # An `Action` captures all the information about an execution which is required + # to reproduce it. + # `Action`s are the core component of the [Execution] service. A single + # `Action` represents a repeatable action that can be performed by the + # execution service. `Action`s can be succinctly identified by the digest of + # their wire format encoding and, once an `Action` has been executed, will be + # cached in the action cache. Future requests can then use the cached result + # rather than needing to run afresh. + # When a server completes execution of an + # Action, it MAY choose to + # cache the result in + # the ActionCache unless + # `do_not_cache` is `true`. Clients SHOULD expect the server to do so. By + # default, future calls to + # Execute the same + # `Action` will also serve their results from the cache. Clients must take care + # to understand the caching behaviour. Ideally, all `Action`s will be + # reproducible so that serving a result from cache is always desirable and + # correct. + class BuildBazelRemoteExecutionV2Action + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `commandDigest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest] + attr_accessor :command_digest + + # If true, then the `Action`'s result cannot be cached. + # Corresponds to the JSON property `doNotCache` + # @return [Boolean] + attr_accessor :do_not_cache + alias_method :do_not_cache?, :do_not_cache + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `inputRootDigest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest] + attr_accessor :input_root_digest + + # A timeout after which the execution should be killed. If the timeout is + # absent, then the client is specifying that the execution should continue + # as long as the server will let it. The server SHOULD impose a timeout if + # the client does not specify one, however, if the client does specify a + # timeout that is longer than the server's maximum timeout, the server MUST + # reject the request. + # The timeout is a part of the + # Action message, and + # therefore two `Actions` with different timeouts are different, even if they + # are otherwise identical. This is because, if they were not, running an + # `Action` with a lower timeout than is required might result in a cache hit + # from an execution run with a longer timeout, hiding the fact that the + # timeout is too short. By encoding it directly in the `Action`, a lower + # timeout will result in a cache miss and the execution timeout will fail + # immediately, rather than whenever the cache entry gets evicted. + # Corresponds to the JSON property `timeout` + # @return [String] + attr_accessor :timeout + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @command_digest = args[:command_digest] if args.key?(:command_digest) + @do_not_cache = args[:do_not_cache] if args.key?(:do_not_cache) + @input_root_digest = args[:input_root_digest] if args.key?(:input_root_digest) + @timeout = args[:timeout] if args.key?(:timeout) + end + end + + # An ActionResult represents the result of an + # Action being run. + class BuildBazelRemoteExecutionV2ActionResult + include Google::Apis::Core::Hashable + + # ExecutedActionMetadata contains details about a completed execution. + # Corresponds to the JSON property `executionMetadata` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2ExecutedActionMetadata] + attr_accessor :execution_metadata + + # The exit code of the command. + # Corresponds to the JSON property `exitCode` + # @return [Fixnum] + attr_accessor :exit_code + + # The output directories of the action. For each output directory requested + # in the `output_directories` field of the Action, if the corresponding + # directory existed after the action completed, a single entry will be + # present in the output list, which will contain the digest of a + # Tree message containing the + # directory tree, and the path equal exactly to the corresponding Action + # output_directories member. + # As an example, suppose the Action had an output directory `a/b/dir` and the + # execution produced the following contents in `a/b/dir`: a file named `bar` + # and a directory named `foo` with an executable file named `baz`. Then, + # output_directory will contain (hashes shortened for readability): + # ```json + # // OutputDirectory proto: + # ` + # path: "a/b/dir" + # tree_digest: ` + # hash: "4a73bc9d03...", + # size: 55 + # ` + # ` + # // Tree proto with hash "4a73bc9d03..." and size 55: + # ` + # root: ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # children : ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ` + # ``` + # Corresponds to the JSON property `outputDirectories` + # @return [Array] + attr_accessor :output_directories + + # The output directories of the action that are symbolic links to other + # directories. Those may be links to other output directories, or input + # directories, or even absolute paths outside of the working directory, + # if the server supports + # SymlinkAbsolutePathStrategy.ALLOWED. + # For each output directory requested in the `output_directories` field of + # the Action, if the directory file existed after + # the action completed, a single entry will be present either in this field, + # or in the `output_directories` field, if the directory was not a symbolic link. + # If the action does not produce the requested output, or produces a + # file where a directory is expected or vice versa, then that output + # will be omitted from the list. The server is free to arrange the output + # list as desired; clients MUST NOT assume that the output list is sorted. + # Corresponds to the JSON property `outputDirectorySymlinks` + # @return [Array] + attr_accessor :output_directory_symlinks + + # The output files of the action that are symbolic links to other files. Those + # may be links to other output files, or input files, or even absolute paths + # outside of the working directory, if the server supports + # SymlinkAbsolutePathStrategy.ALLOWED. + # For each output file requested in the `output_files` field of the Action, + # if the corresponding file existed after + # the action completed, a single entry will be present either in this field, + # or in the `output_files` field, if the file was not a symbolic link. + # If the action does not produce the requested output, or produces a + # directory where a regular file is expected or vice versa, then that output + # will be omitted from the list. The server is free to arrange the output + # list as desired; clients MUST NOT assume that the output list is sorted. + # Corresponds to the JSON property `outputFileSymlinks` + # @return [Array] + attr_accessor :output_file_symlinks + + # The output files of the action. For each output file requested in the + # `output_files` field of the Action, if the corresponding file existed after + # the action completed, a single entry will be present either in this field, + # or in the output_file_symlinks field, if the file was a symbolic link to + # another file. + # If the action does not produce the requested output, or produces a + # directory where a regular file is expected or vice versa, then that output + # will be omitted from the list. The server is free to arrange the output + # list as desired; clients MUST NOT assume that the output list is sorted. + # Corresponds to the JSON property `outputFiles` + # @return [Array] + attr_accessor :output_files + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `stderrDigest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest] + attr_accessor :stderr_digest + + # The standard error buffer of the action. The server will determine, based + # on the size of the buffer, whether to return it in raw form or to return + # a digest in `stderr_digest` that points to the buffer. If neither is set, + # then the buffer is empty. The client SHOULD NOT assume it will get one of + # the raw buffer or a digest on any given request and should be prepared to + # handle either. + # Corresponds to the JSON property `stderrRaw` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :stderr_raw + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `stdoutDigest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest] + attr_accessor :stdout_digest + + # The standard output buffer of the action. The server will determine, based + # on the size of the buffer, whether to return it in raw form or to return + # a digest in `stdout_digest` that points to the buffer. If neither is set, + # then the buffer is empty. The client SHOULD NOT assume it will get one of + # the raw buffer or a digest on any given request and should be prepared to + # handle either. + # Corresponds to the JSON property `stdoutRaw` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :stdout_raw + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @execution_metadata = args[:execution_metadata] if args.key?(:execution_metadata) + @exit_code = args[:exit_code] if args.key?(:exit_code) + @output_directories = args[:output_directories] if args.key?(:output_directories) + @output_directory_symlinks = args[:output_directory_symlinks] if args.key?(:output_directory_symlinks) + @output_file_symlinks = args[:output_file_symlinks] if args.key?(:output_file_symlinks) + @output_files = args[:output_files] if args.key?(:output_files) + @stderr_digest = args[:stderr_digest] if args.key?(:stderr_digest) + @stderr_raw = args[:stderr_raw] if args.key?(:stderr_raw) + @stdout_digest = args[:stdout_digest] if args.key?(:stdout_digest) + @stdout_raw = args[:stdout_raw] if args.key?(:stdout_raw) + end + end + + # A `Command` is the actual command executed by a worker running an + # Action and specifications of its + # environment. + # Except as otherwise required, the environment (such as which system + # libraries or binaries are available, and what filesystems are mounted where) + # is defined by and specific to the implementation of the remote execution API. + class BuildBazelRemoteExecutionV2Command + include Google::Apis::Core::Hashable + + # The arguments to the command. The first argument must be the path to the + # executable, which must be either a relative path, in which case it is + # evaluated with respect to the input root, or an absolute path. + # Corresponds to the JSON property `arguments` + # @return [Array] + attr_accessor :arguments + + # The environment variables to set when running the program. The worker may + # provide its own default environment variables; these defaults can be + # overridden using this field. Additional variables can also be specified. + # In order to ensure that equivalent `Command`s always hash to the same + # value, the environment variables MUST be lexicographically sorted by name. + # Sorting of strings is done by code point, equivalently, by the UTF-8 bytes. + # Corresponds to the JSON property `environmentVariables` + # @return [Array] + attr_accessor :environment_variables + + # A list of the output directories that the client expects to retrieve from + # the action. Only the contents of the indicated directories (recursively + # including the contents of their subdirectories) will be + # returned, as well as files listed in `output_files`. Other files that may + # be created during command execution are discarded. + # The paths are relative to the working directory of the action execution. + # The paths are specified using a single forward slash (`/`) as a path + # separator, even if the execution platform natively uses a different + # separator. The path MUST NOT include a trailing slash, nor a leading slash, + # being a relative path. The special value of empty string is allowed, + # although not recommended, and can be used to capture the entire working + # directory tree, including inputs. + # In order to ensure consistent hashing of the same Action, the output paths + # MUST be sorted lexicographically by code point (or, equivalently, by UTF-8 + # bytes). + # An output directory cannot be duplicated, be a parent of another output + # directory, be a parent of a listed output file, or have the same path as + # any of the listed output files. + # Corresponds to the JSON property `outputDirectories` + # @return [Array] + attr_accessor :output_directories + + # A list of the output files that the client expects to retrieve from the + # action. Only the listed files, as well as directories listed in + # `output_directories`, will be returned to the client as output. + # Other files that may be created during command execution are discarded. + # The paths are relative to the working directory of the action execution. + # The paths are specified using a single forward slash (`/`) as a path + # separator, even if the execution platform natively uses a different + # separator. The path MUST NOT include a trailing slash, nor a leading slash, + # being a relative path. + # In order to ensure consistent hashing of the same Action, the output paths + # MUST be sorted lexicographically by code point (or, equivalently, by UTF-8 + # bytes). + # An output file cannot be duplicated, be a parent of another output file, be + # a child of a listed output directory, or have the same path as any of the + # listed output directories. + # Corresponds to the JSON property `outputFiles` + # @return [Array] + attr_accessor :output_files + + # A `Platform` is a set of requirements, such as hardware, operating system, or + # compiler toolchain, for an + # Action's execution + # environment. A `Platform` is represented as a series of key-value pairs + # representing the properties that are required of the platform. + # Corresponds to the JSON property `platform` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Platform] + attr_accessor :platform + + # The working directory, relative to the input root, for the command to run + # in. It must be a directory which exists in the input tree. If it is left + # empty, then the action is run in the input root. + # Corresponds to the JSON property `workingDirectory` + # @return [String] + attr_accessor :working_directory + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arguments = args[:arguments] if args.key?(:arguments) + @environment_variables = args[:environment_variables] if args.key?(:environment_variables) + @output_directories = args[:output_directories] if args.key?(:output_directories) + @output_files = args[:output_files] if args.key?(:output_files) + @platform = args[:platform] if args.key?(:platform) + @working_directory = args[:working_directory] if args.key?(:working_directory) + end + end + + # An `EnvironmentVariable` is one variable to set in the running program's + # environment. + class BuildBazelRemoteExecutionV2CommandEnvironmentVariable + include Google::Apis::Core::Hashable + + # The variable name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The variable value. + # Corresponds to the JSON property `value` + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + class BuildBazelRemoteExecutionV2Digest + include Google::Apis::Core::Hashable + + # The hash. In the case of SHA-256, it will always be a lowercase hex string + # exactly 64 characters long. + # Corresponds to the JSON property `hash` + # @return [String] + attr_accessor :hash_prop + + # The size of the blob, in bytes. + # Corresponds to the JSON property `sizeBytes` + # @return [Fixnum] + attr_accessor :size_bytes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @hash_prop = args[:hash_prop] if args.key?(:hash_prop) + @size_bytes = args[:size_bytes] if args.key?(:size_bytes) + end + end + + # A `Directory` represents a directory node in a file tree, containing zero or + # more children FileNodes, + # DirectoryNodes and + # SymlinkNodes. + # Each `Node` contains its name in the directory, either the digest of its + # content (either a file blob or a `Directory` proto) or a symlink target, as + # well as possibly some metadata about the file or directory. + # In order to ensure that two equivalent directory trees hash to the same + # value, the following restrictions MUST be obeyed when constructing a + # a `Directory`: + # - Every child in the directory must have a path of exactly one segment. + # Multiple levels of directory hierarchy may not be collapsed. + # - Each child in the directory must have a unique path segment (file name). + # - The files, directories and symlinks in the directory must each be sorted + # in lexicographical order by path. The path strings must be sorted by code + # point, equivalently, by UTF-8 bytes. + # A `Directory` that obeys the restrictions is said to be in canonical form. + # As an example, the following could be used for a file named `bar` and a + # directory named `foo` with an executable file named `baz` (hashes shortened + # for readability): + # ```json + # // (Directory proto) + # ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # ` + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ``` + class BuildBazelRemoteExecutionV2Directory + include Google::Apis::Core::Hashable + + # The subdirectories in the directory. + # Corresponds to the JSON property `directories` + # @return [Array] + attr_accessor :directories + + # The files in the directory. + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + # The symlinks in the directory. + # Corresponds to the JSON property `symlinks` + # @return [Array] + attr_accessor :symlinks + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @directories = args[:directories] if args.key?(:directories) + @files = args[:files] if args.key?(:files) + @symlinks = args[:symlinks] if args.key?(:symlinks) + end + end + + # A `DirectoryNode` represents a child of a + # Directory which is itself + # a `Directory` and its associated metadata. + class BuildBazelRemoteExecutionV2DirectoryNode + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # The name of the directory. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @name = args[:name] if args.key?(:name) + end + end + + # Metadata about an ongoing + # execution, which + # will be contained in the metadata + # field of the + # Operation. + class BuildBazelRemoteExecutionV2ExecuteOperationMetadata + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `actionDigest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest] + attr_accessor :action_digest + + # + # Corresponds to the JSON property `stage` + # @return [String] + attr_accessor :stage + + # If set, the client can use this name with + # ByteStream.Read to stream the + # standard error. + # Corresponds to the JSON property `stderrStreamName` + # @return [String] + attr_accessor :stderr_stream_name + + # If set, the client can use this name with + # ByteStream.Read to stream the + # standard output. + # Corresponds to the JSON property `stdoutStreamName` + # @return [String] + attr_accessor :stdout_stream_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_digest = args[:action_digest] if args.key?(:action_digest) + @stage = args[:stage] if args.key?(:stage) + @stderr_stream_name = args[:stderr_stream_name] if args.key?(:stderr_stream_name) + @stdout_stream_name = args[:stdout_stream_name] if args.key?(:stdout_stream_name) + end + end + + # The response message for + # Execution.Execute, + # which will be contained in the response + # field of the + # Operation. + class BuildBazelRemoteExecutionV2ExecuteResponse + include Google::Apis::Core::Hashable + + # True if the result was served from cache, false if it was executed. + # Corresponds to the JSON property `cachedResult` + # @return [Boolean] + attr_accessor :cached_result + alias_method :cached_result?, :cached_result + + # An ActionResult represents the result of an + # Action being run. + # Corresponds to the JSON property `result` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2ActionResult] + attr_accessor :result + + # An optional list of additional log outputs the server wishes to provide. A + # server can use this to return execution-specific logs however it wishes. + # This is intended primarily to make it easier for users to debug issues that + # may be outside of the actual job execution, such as by identifying the + # worker executing the action or by providing logs from the worker's setup + # phase. The keys SHOULD be human readable so that a client can display them + # to a user. + # Corresponds to the JSON property `serverLogs` + # @return [Hash] + attr_accessor :server_logs + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `status` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleRpcStatus] + attr_accessor :status + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cached_result = args[:cached_result] if args.key?(:cached_result) + @result = args[:result] if args.key?(:result) + @server_logs = args[:server_logs] if args.key?(:server_logs) + @status = args[:status] if args.key?(:status) + end + end + + # ExecutedActionMetadata contains details about a completed execution. + class BuildBazelRemoteExecutionV2ExecutedActionMetadata + include Google::Apis::Core::Hashable + + # When the worker completed executing the action command. + # Corresponds to the JSON property `executionCompletedTimestamp` + # @return [String] + attr_accessor :execution_completed_timestamp + + # When the worker started executing the action command. + # Corresponds to the JSON property `executionStartTimestamp` + # @return [String] + attr_accessor :execution_start_timestamp + + # When the worker finished fetching action inputs. + # Corresponds to the JSON property `inputFetchCompletedTimestamp` + # @return [String] + attr_accessor :input_fetch_completed_timestamp + + # When the worker started fetching action inputs. + # Corresponds to the JSON property `inputFetchStartTimestamp` + # @return [String] + attr_accessor :input_fetch_start_timestamp + + # When the worker finished uploading action outputs. + # Corresponds to the JSON property `outputUploadCompletedTimestamp` + # @return [String] + attr_accessor :output_upload_completed_timestamp + + # When the worker started uploading action outputs. + # Corresponds to the JSON property `outputUploadStartTimestamp` + # @return [String] + attr_accessor :output_upload_start_timestamp + + # When was the action added to the queue. + # Corresponds to the JSON property `queuedTimestamp` + # @return [String] + attr_accessor :queued_timestamp + + # The name of the worker which ran the execution. + # Corresponds to the JSON property `worker` + # @return [String] + attr_accessor :worker + + # When the worker completed the action, including all stages. + # Corresponds to the JSON property `workerCompletedTimestamp` + # @return [String] + attr_accessor :worker_completed_timestamp + + # When the worker received the action. + # Corresponds to the JSON property `workerStartTimestamp` + # @return [String] + attr_accessor :worker_start_timestamp + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @execution_completed_timestamp = args[:execution_completed_timestamp] if args.key?(:execution_completed_timestamp) + @execution_start_timestamp = args[:execution_start_timestamp] if args.key?(:execution_start_timestamp) + @input_fetch_completed_timestamp = args[:input_fetch_completed_timestamp] if args.key?(:input_fetch_completed_timestamp) + @input_fetch_start_timestamp = args[:input_fetch_start_timestamp] if args.key?(:input_fetch_start_timestamp) + @output_upload_completed_timestamp = args[:output_upload_completed_timestamp] if args.key?(:output_upload_completed_timestamp) + @output_upload_start_timestamp = args[:output_upload_start_timestamp] if args.key?(:output_upload_start_timestamp) + @queued_timestamp = args[:queued_timestamp] if args.key?(:queued_timestamp) + @worker = args[:worker] if args.key?(:worker) + @worker_completed_timestamp = args[:worker_completed_timestamp] if args.key?(:worker_completed_timestamp) + @worker_start_timestamp = args[:worker_start_timestamp] if args.key?(:worker_start_timestamp) + end + end + + # A `FileNode` represents a single file and associated metadata. + class BuildBazelRemoteExecutionV2FileNode + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # True if file is executable, false otherwise. + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The name of the file. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @name = args[:name] if args.key?(:name) + end + end + + # A `LogFile` is a log stored in the CAS. + class BuildBazelRemoteExecutionV2LogFile + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # This is a hint as to the purpose of the log, and is set to true if the log + # is human-readable text that can be usefully displayed to a user, and false + # otherwise. For instance, if a command-line client wishes to print the + # server logs to the terminal for a failed action, this allows it to avoid + # displaying a binary file. + # Corresponds to the JSON property `humanReadable` + # @return [Boolean] + attr_accessor :human_readable + alias_method :human_readable?, :human_readable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @human_readable = args[:human_readable] if args.key?(:human_readable) + end + end + + # An `OutputDirectory` is the output in an `ActionResult` corresponding to a + # directory's full contents rather than a single file. + class BuildBazelRemoteExecutionV2OutputDirectory + include Google::Apis::Core::Hashable + + # The full path of the directory relative to the working directory. The path + # separator is a forward slash `/`. Since this is a relative path, it MUST + # NOT begin with a leading forward slash. The empty string value is allowed, + # and it denotes the entire working directory. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `treeDigest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest] + attr_accessor :tree_digest + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @path = args[:path] if args.key?(:path) + @tree_digest = args[:tree_digest] if args.key?(:tree_digest) + end + end + + # An `OutputFile` is similar to a + # FileNode, but it is used as an + # output in an `ActionResult`. It allows a full file path rather than + # only a name. + # `OutputFile` is binary-compatible with `FileNode`. + class BuildBazelRemoteExecutionV2OutputFile + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # True if file is executable, false otherwise. + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The full path of the file relative to the working directory, including the + # filename. The path separator is a forward slash `/`. Since this is a + # relative path, it MUST NOT begin with a leading forward slash. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @path = args[:path] if args.key?(:path) + end + end + + # An `OutputSymlink` is similar to a + # Symlink, but it is used as an + # output in an `ActionResult`. + # `OutputSymlink` is binary-compatible with `SymlinkNode`. + class BuildBazelRemoteExecutionV2OutputSymlink + include Google::Apis::Core::Hashable + + # The full path of the symlink relative to the working directory, including the + # filename. The path separator is a forward slash `/`. Since this is a + # relative path, it MUST NOT begin with a leading forward slash. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + # The target path of the symlink. The path separator is a forward slash `/`. + # The target path can be relative to the parent directory of the symlink or + # it can be an absolute path starting with `/`. Support for absolute paths + # can be checked using the Capabilities + # API. The canonical form forbids the substrings `/./` and `//` in the target + # path. `..` components are allowed anywhere in the target path. + # Corresponds to the JSON property `target` + # @return [String] + attr_accessor :target + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @path = args[:path] if args.key?(:path) + @target = args[:target] if args.key?(:target) + end + end + + # A `Platform` is a set of requirements, such as hardware, operating system, or + # compiler toolchain, for an + # Action's execution + # environment. A `Platform` is represented as a series of key-value pairs + # representing the properties that are required of the platform. + class BuildBazelRemoteExecutionV2Platform + include Google::Apis::Core::Hashable + + # The properties that make up this platform. In order to ensure that + # equivalent `Platform`s always hash to the same value, the properties MUST + # be lexicographically sorted by name, and then by value. Sorting of strings + # is done by code point, equivalently, by the UTF-8 bytes. + # Corresponds to the JSON property `properties` + # @return [Array] + attr_accessor :properties + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @properties = args[:properties] if args.key?(:properties) + end + end + + # A single property for the environment. The server is responsible for + # specifying the property `name`s that it accepts. If an unknown `name` is + # provided in the requirements for an + # Action, the server SHOULD + # reject the execution request. If permitted by the server, the same `name` + # may occur multiple times. + # The server is also responsible for specifying the interpretation of + # property `value`s. For instance, a property describing how much RAM must be + # available may be interpreted as allowing a worker with 16GB to fulfill a + # request for 8GB, while a property describing the OS environment on which + # the action must be performed may require an exact match with the worker's + # OS. + # The server MAY use the `value` of one or more properties to determine how + # it sets up the execution environment, such as by making specific system + # files available to the worker. + class BuildBazelRemoteExecutionV2PlatformProperty + include Google::Apis::Core::Hashable + + # The property name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The property value. + # Corresponds to the JSON property `value` + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # An optional Metadata to attach to any RPC request to tell the server about an + # external context of the request. The server may use this for logging or other + # purposes. To use it, the client attaches the header to the call using the + # canonical proto serialization: + # name: build.bazel.remote.execution.v2.requestmetadata-bin + # contents: the base64 encoded binary RequestMetadata message. + class BuildBazelRemoteExecutionV2RequestMetadata + include Google::Apis::Core::Hashable + + # An identifier that ties multiple requests to the same action. + # For example, multiple requests to the CAS, Action Cache, and Execution + # API are used in order to compile foo.cc. + # Corresponds to the JSON property `actionId` + # @return [String] + attr_accessor :action_id + + # An identifier to tie multiple tool invocations together. For example, + # runs of foo_test, bar_test and baz_test on a post-submit of a given patch. + # Corresponds to the JSON property `correlatedInvocationsId` + # @return [String] + attr_accessor :correlated_invocations_id + + # Details for the tool used to call the API. + # Corresponds to the JSON property `toolDetails` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2ToolDetails] + attr_accessor :tool_details + + # An identifier that ties multiple actions together to a final result. + # For example, multiple actions are required to build and run foo_test. + # Corresponds to the JSON property `toolInvocationId` + # @return [String] + attr_accessor :tool_invocation_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_id = args[:action_id] if args.key?(:action_id) + @correlated_invocations_id = args[:correlated_invocations_id] if args.key?(:correlated_invocations_id) + @tool_details = args[:tool_details] if args.key?(:tool_details) + @tool_invocation_id = args[:tool_invocation_id] if args.key?(:tool_invocation_id) + end + end + + # A `SymlinkNode` represents a symbolic link. + class BuildBazelRemoteExecutionV2SymlinkNode + include Google::Apis::Core::Hashable + + # The name of the symlink. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The target path of the symlink. The path separator is a forward slash `/`. + # The target path can be relative to the parent directory of the symlink or + # it can be an absolute path starting with `/`. Support for absolute paths + # can be checked using the Capabilities + # API. The canonical form forbids the substrings `/./` and `//` in the target + # path. `..` components are allowed anywhere in the target path. + # Corresponds to the JSON property `target` + # @return [String] + attr_accessor :target + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @target = args[:target] if args.key?(:target) + end + end + + # Details for the tool used to call the API. + class BuildBazelRemoteExecutionV2ToolDetails + include Google::Apis::Core::Hashable + + # Name of the tool, e.g. bazel. + # Corresponds to the JSON property `toolName` + # @return [String] + attr_accessor :tool_name + + # Version of the tool used for the request, e.g. 5.0.3. + # Corresponds to the JSON property `toolVersion` + # @return [String] + attr_accessor :tool_version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @tool_name = args[:tool_name] if args.key?(:tool_name) + @tool_version = args[:tool_version] if args.key?(:tool_version) + end + end + + # A `Tree` contains all the + # Directory protos in a + # single directory Merkle tree, compressed into one message. + class BuildBazelRemoteExecutionV2Tree + include Google::Apis::Core::Hashable + + # All the child directories: the directories referred to by the root and, + # recursively, all its children. In order to reconstruct the directory tree, + # the client must take the digests of each of the child directories and then + # build up a tree starting from the `root`. + # Corresponds to the JSON property `children` + # @return [Array] + attr_accessor :children + + # A `Directory` represents a directory node in a file tree, containing zero or + # more children FileNodes, + # DirectoryNodes and + # SymlinkNodes. + # Each `Node` contains its name in the directory, either the digest of its + # content (either a file blob or a `Directory` proto) or a symlink target, as + # well as possibly some metadata about the file or directory. + # In order to ensure that two equivalent directory trees hash to the same + # value, the following restrictions MUST be obeyed when constructing a + # a `Directory`: + # - Every child in the directory must have a path of exactly one segment. + # Multiple levels of directory hierarchy may not be collapsed. + # - Each child in the directory must have a unique path segment (file name). + # - The files, directories and symlinks in the directory must each be sorted + # in lexicographical order by path. The path strings must be sorted by code + # point, equivalently, by UTF-8 bytes. + # A `Directory` that obeys the restrictions is said to be in canonical form. + # As an example, the following could be used for a file named `bar` and a + # directory named `foo` with an executable file named `baz` (hashes shortened + # for readability): + # ```json + # // (Directory proto) + # ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # ` + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ``` + # Corresponds to the JSON property `root` + # @return [Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Directory] + attr_accessor :root + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @children = args[:children] if args.key?(:children) + @root = args[:root] if args.key?(:root) + end + end + + # CommandDuration contains the various duration metrics tracked when a bot + # performs a command. + class GoogleDevtoolsRemotebuildbotCommandDurations + include Google::Apis::Core::Hashable + + # The time spent preparing the command to be run in a Docker container + # (includes pulling the Docker image, if necessary). + # Corresponds to the JSON property `dockerPrep` + # @return [String] + attr_accessor :docker_prep + + # The time spent downloading the input files and constructing the working + # directory. + # Corresponds to the JSON property `download` + # @return [String] + attr_accessor :download + + # The time spent executing the command (i.e., doing useful work). + # Corresponds to the JSON property `execution` + # @return [String] + attr_accessor :execution + + # The timestamp when preparation is done and bot starts downloading files. + # Corresponds to the JSON property `isoPrepDone` + # @return [String] + attr_accessor :iso_prep_done + + # The time spent completing the command, in total. + # Corresponds to the JSON property `overall` + # @return [String] + attr_accessor :overall + + # The time spent uploading the stdout logs. + # Corresponds to the JSON property `stdout` + # @return [String] + attr_accessor :stdout + + # The time spent uploading the output files. + # Corresponds to the JSON property `upload` + # @return [String] + attr_accessor :upload + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @docker_prep = args[:docker_prep] if args.key?(:docker_prep) + @download = args[:download] if args.key?(:download) + @execution = args[:execution] if args.key?(:execution) + @iso_prep_done = args[:iso_prep_done] if args.key?(:iso_prep_done) + @overall = args[:overall] if args.key?(:overall) + @stdout = args[:stdout] if args.key?(:stdout) + @upload = args[:upload] if args.key?(:upload) + end + end + + # CommandEvents contains counters for the number of warnings and errors + # that occurred during the execution of a command. + class GoogleDevtoolsRemotebuildbotCommandEvents + include Google::Apis::Core::Hashable + + # Indicates whether we are using a cached Docker image (true) or had to pull + # the Docker image (false) for this command. + # Corresponds to the JSON property `dockerCacheHit` + # @return [Boolean] + attr_accessor :docker_cache_hit + alias_method :docker_cache_hit?, :docker_cache_hit + + # The number of errors reported. + # Corresponds to the JSON property `numErrors` + # @return [Fixnum] + attr_accessor :num_errors + + # The number of warnings reported. + # Corresponds to the JSON property `numWarnings` + # @return [Fixnum] + attr_accessor :num_warnings + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @docker_cache_hit = args[:docker_cache_hit] if args.key?(:docker_cache_hit) + @num_errors = args[:num_errors] if args.key?(:num_errors) + @num_warnings = args[:num_warnings] if args.key?(:num_warnings) + end + end + + # The request used for `CreateInstance`. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest + include Google::Apis::Core::Hashable + + # Instance conceptually encapsulates all Remote Build Execution resources + # for remote builds. + # An instance consists of storage and compute resources (for example, + # `ContentAddressableStorage`, `ActionCache`, `WorkerPools`) used for + # running remote builds. + # All Remote Build Execution API calls are scoped to an instance. + # Corresponds to the JSON property `instance` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance] + attr_accessor :instance + + # ID of the created instance. + # A valid `instance_id` must: + # be 6-50 characters long, + # contains only lowercase letters, digits, hyphens and underscores, + # start with a lowercase letter, and + # end with a lowercase letter or a digit. + # Corresponds to the JSON property `instanceId` + # @return [String] + attr_accessor :instance_id + + # Resource name of the project containing the instance. + # Format: `projects/[PROJECT_ID]`. + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @instance = args[:instance] if args.key?(:instance) + @instance_id = args[:instance_id] if args.key?(:instance_id) + @parent = args[:parent] if args.key?(:parent) + end + end + + # The request used for `CreateWorkerPool`. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest + include Google::Apis::Core::Hashable + + # Resource name of the instance in which to create the new worker pool. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + # ID of the created worker pool. + # A valid pool ID must: + # be 6-50 characters long, + # contain only lowercase letters, digits, hyphens and underscores, + # start with a lowercase letter, and + # end with a lowercase letter or a digit. + # Corresponds to the JSON property `poolId` + # @return [String] + attr_accessor :pool_id + + # A worker pool resource in the Remote Build Execution API. + # Corresponds to the JSON property `workerPool` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool] + attr_accessor :worker_pool + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @parent = args[:parent] if args.key?(:parent) + @pool_id = args[:pool_id] if args.key?(:pool_id) + @worker_pool = args[:worker_pool] if args.key?(:worker_pool) + end + end + + # The request used for `DeleteInstance`. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest + include Google::Apis::Core::Hashable + + # Name of the instance to delete. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # The request used for DeleteWorkerPool. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest + include Google::Apis::Core::Hashable + + # Name of the worker pool to delete. + # Format: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # The request used for `GetInstance`. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest + include Google::Apis::Core::Hashable + + # Name of the instance to retrieve. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # The request used for GetWorkerPool. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest + include Google::Apis::Core::Hashable + + # Name of the worker pool to retrieve. + # Format: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # Instance conceptually encapsulates all Remote Build Execution resources + # for remote builds. + # An instance consists of storage and compute resources (for example, + # `ContentAddressableStorage`, `ActionCache`, `WorkerPools`) used for + # running remote builds. + # All Remote Build Execution API calls are scoped to an instance. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance + include Google::Apis::Core::Hashable + + # The location is a GCP region. Currently only `us-central1` is supported. + # Corresponds to the JSON property `location` + # @return [String] + attr_accessor :location + + # Output only. Instance resource name formatted as: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Name should not be populated when creating an instance since it is provided + # in the `instance_id` field. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Output only. State of the instance. + # Corresponds to the JSON property `state` + # @return [String] + attr_accessor :state + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @location = args[:location] if args.key?(:location) + @name = args[:name] if args.key?(:name) + @state = args[:state] if args.key?(:state) + end + end + + # + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest + include Google::Apis::Core::Hashable + + # Resource name of the project. + # Format: `projects/[PROJECT_ID]`. + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @parent = args[:parent] if args.key?(:parent) + end + end + + # + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse + include Google::Apis::Core::Hashable + + # The list of instances in a given project. + # Corresponds to the JSON property `instances` + # @return [Array] + attr_accessor :instances + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @instances = args[:instances] if args.key?(:instances) + end + end + + # + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest + include Google::Apis::Core::Hashable + + # Resource name of the instance. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @parent = args[:parent] if args.key?(:parent) + end + end + + # + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse + include Google::Apis::Core::Hashable + + # The list of worker pools in a given instance. + # Corresponds to the JSON property `workerPools` + # @return [Array] + attr_accessor :worker_pools + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @worker_pools = args[:worker_pools] if args.key?(:worker_pools) + end + end + + # The request used for UpdateWorkerPool. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest + include Google::Apis::Core::Hashable + + # The update mask applies to worker_pool. For the `FieldMask` definition, + # see https://developers.google.com/protocol-buffers/docs/reference/google. + # protobuf#fieldmask + # If an empty update_mask is provided, only the non-default valued field in + # the worker pool field will be updated. Note that in order to update a field + # to the default value (zero, false, empty string) an explicit update_mask + # must be provided. + # Corresponds to the JSON property `updateMask` + # @return [String] + attr_accessor :update_mask + + # A worker pool resource in the Remote Build Execution API. + # Corresponds to the JSON property `workerPool` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool] + attr_accessor :worker_pool + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @update_mask = args[:update_mask] if args.key?(:update_mask) + @worker_pool = args[:worker_pool] if args.key?(:worker_pool) + end + end + + # Defines the configuration to be used for a creating workers in + # the worker pool. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig + include Google::Apis::Core::Hashable + + # Required. Size of the disk attached to the worker, in GB. + # See https://cloud.google.com/compute/docs/disks/ + # Corresponds to the JSON property `diskSizeGb` + # @return [Fixnum] + attr_accessor :disk_size_gb + + # Required. Disk Type to use for the worker. + # See [Storage options](https://cloud.google.com/compute/docs/disks/# + # introduction). + # Currently only `pd-standard` is supported. + # Corresponds to the JSON property `diskType` + # @return [String] + attr_accessor :disk_type + + # Required. Machine type of the worker, such as n1-standard-2. + # See https://cloud.google.com/compute/docs/machine-types for a list of + # supported machine types. + # Corresponds to the JSON property `machineType` + # @return [String] + attr_accessor :machine_type + + # Minimum CPU platform to use when creating the worker. + # See [CPU Platforms](https://cloud.google.com/compute/docs/cpu-platforms). + # Corresponds to the JSON property `minCpuPlatform` + # @return [String] + attr_accessor :min_cpu_platform + + # Output only. `reserved=true` means the worker is reserved and won't be + # preempted. + # Corresponds to the JSON property `reserved` + # @return [Boolean] + attr_accessor :reserved + alias_method :reserved?, :reserved + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb) + @disk_type = args[:disk_type] if args.key?(:disk_type) + @machine_type = args[:machine_type] if args.key?(:machine_type) + @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform) + @reserved = args[:reserved] if args.key?(:reserved) + end + end + + # A worker pool resource in the Remote Build Execution API. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool + include Google::Apis::Core::Hashable + + # WorkerPool resource name formatted as: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. + # name should not be populated when creating a worker pool since it is + # provided in the `poolId` field. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Output only. State of the worker pool. + # Corresponds to the JSON property `state` + # @return [String] + attr_accessor :state + + # Defines the configuration to be used for a creating workers in + # the worker pool. + # Corresponds to the JSON property `workerConfig` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig] + attr_accessor :worker_config + + # The desired number of workers in the worker pool. Must be a value between + # 0 and 1000. + # Corresponds to the JSON property `workerCount` + # @return [Fixnum] + attr_accessor :worker_count + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @state = args[:state] if args.key?(:state) + @worker_config = args[:worker_config] if args.key?(:worker_config) + @worker_count = args[:worker_count] if args.key?(:worker_count) + end + end + + # An ActionResult represents the result of an + # Action being run. + class GoogleDevtoolsRemoteexecutionV1testActionResult + include Google::Apis::Core::Hashable + + # The exit code of the command. + # Corresponds to the JSON property `exitCode` + # @return [Fixnum] + attr_accessor :exit_code + + # The output directories of the action. For each output directory requested + # in the `output_directories` field of the Action, if the corresponding + # directory existed after the action completed, a single entry will be + # present in the output list, which will contain the digest of + # a Tree message containing + # the directory tree, and the path equal exactly to the corresponding Action + # output_directories member. + # As an example, suppose the Action had an output directory `a/b/dir` and the + # execution produced the following contents in `a/b/dir`: a file named `bar` + # and a directory named `foo` with an executable file named `baz`. Then, + # output_directory will contain (hashes shortened for readability): + # ```json + # // OutputDirectory proto: + # ` + # path: "a/b/dir" + # tree_digest: ` + # hash: "4a73bc9d03...", + # size: 55 + # ` + # ` + # // Tree proto with hash "4a73bc9d03..." and size 55: + # ` + # root: ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # children : ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ` + # ``` + # Corresponds to the JSON property `outputDirectories` + # @return [Array] + attr_accessor :output_directories + + # The output files of the action. For each output file requested in the + # `output_files` field of the Action, if the corresponding file existed after + # the action completed, a single entry will be present in the output list. + # If the action does not produce the requested output, or produces a + # directory where a regular file is expected or vice versa, then that output + # will be omitted from the list. The server is free to arrange the output + # list as desired; clients MUST NOT assume that the output list is sorted. + # Corresponds to the JSON property `outputFiles` + # @return [Array] + attr_accessor :output_files + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `stderrDigest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :stderr_digest + + # The standard error buffer of the action. The server will determine, based + # on the size of the buffer, whether to return it in raw form or to return + # a digest in `stderr_digest` that points to the buffer. If neither is set, + # then the buffer is empty. The client SHOULD NOT assume it will get one of + # the raw buffer or a digest on any given request and should be prepared to + # handle either. + # Corresponds to the JSON property `stderrRaw` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :stderr_raw + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `stdoutDigest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :stdout_digest + + # The standard output buffer of the action. The server will determine, based + # on the size of the buffer, whether to return it in raw form or to return + # a digest in `stdout_digest` that points to the buffer. If neither is set, + # then the buffer is empty. The client SHOULD NOT assume it will get one of + # the raw buffer or a digest on any given request and should be prepared to + # handle either. + # Corresponds to the JSON property `stdoutRaw` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :stdout_raw + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @exit_code = args[:exit_code] if args.key?(:exit_code) + @output_directories = args[:output_directories] if args.key?(:output_directories) + @output_files = args[:output_files] if args.key?(:output_files) + @stderr_digest = args[:stderr_digest] if args.key?(:stderr_digest) + @stderr_raw = args[:stderr_raw] if args.key?(:stderr_raw) + @stdout_digest = args[:stdout_digest] if args.key?(:stdout_digest) + @stdout_raw = args[:stdout_raw] if args.key?(:stdout_raw) + end + end + + # A `Command` is the actual command executed by a worker running an + # Action. + # Except as otherwise required, the environment (such as which system + # libraries or binaries are available, and what filesystems are mounted where) + # is defined by and specific to the implementation of the remote execution API. + class GoogleDevtoolsRemoteexecutionV1testCommand + include Google::Apis::Core::Hashable + + # The arguments to the command. The first argument must be the path to the + # executable, which must be either a relative path, in which case it is + # evaluated with respect to the input root, or an absolute path. + # The working directory will always be the input root. + # Corresponds to the JSON property `arguments` + # @return [Array] + attr_accessor :arguments + + # The environment variables to set when running the program. The worker may + # provide its own default environment variables; these defaults can be + # overridden using this field. Additional variables can also be specified. + # In order to ensure that equivalent `Command`s always hash to the same + # value, the environment variables MUST be lexicographically sorted by name. + # Sorting of strings is done by code point, equivalently, by the UTF-8 bytes. + # Corresponds to the JSON property `environmentVariables` + # @return [Array] + attr_accessor :environment_variables + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arguments = args[:arguments] if args.key?(:arguments) + @environment_variables = args[:environment_variables] if args.key?(:environment_variables) + end + end + + # An `EnvironmentVariable` is one variable to set in the running program's + # environment. + class GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable + include Google::Apis::Core::Hashable + + # The variable name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The variable value. + # Corresponds to the JSON property `value` + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + class GoogleDevtoolsRemoteexecutionV1testDigest + include Google::Apis::Core::Hashable + + # The hash. In the case of SHA-256, it will always be a lowercase hex string + # exactly 64 characters long. + # Corresponds to the JSON property `hash` + # @return [String] + attr_accessor :hash_prop + + # The size of the blob, in bytes. + # Corresponds to the JSON property `sizeBytes` + # @return [Fixnum] + attr_accessor :size_bytes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @hash_prop = args[:hash_prop] if args.key?(:hash_prop) + @size_bytes = args[:size_bytes] if args.key?(:size_bytes) + end + end + + # A `Directory` represents a directory node in a file tree, containing zero or + # more children FileNodes + # and DirectoryNodes. + # Each `Node` contains its name in the directory, the digest of its content + # (either a file blob or a `Directory` proto), as well as possibly some + # metadata about the file or directory. + # In order to ensure that two equivalent directory trees hash to the same + # value, the following restrictions MUST be obeyed when constructing a + # a `Directory`: + # - Every child in the directory must have a path of exactly one segment. + # Multiple levels of directory hierarchy may not be collapsed. + # - Each child in the directory must have a unique path segment (file name). + # - The files and directories in the directory must each be sorted in + # lexicographical order by path. The path strings must be sorted by code + # point, equivalently, by UTF-8 bytes. + # A `Directory` that obeys the restrictions is said to be in canonical form. + # As an example, the following could be used for a file named `bar` and a + # directory named `foo` with an executable file named `baz` (hashes shortened + # for readability): + # ```json + # // (Directory proto) + # ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # ` + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ``` + class GoogleDevtoolsRemoteexecutionV1testDirectory + include Google::Apis::Core::Hashable + + # The subdirectories in the directory. + # Corresponds to the JSON property `directories` + # @return [Array] + attr_accessor :directories + + # The files in the directory. + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @directories = args[:directories] if args.key?(:directories) + @files = args[:files] if args.key?(:files) + end + end + + # A `DirectoryNode` represents a child of a + # Directory which is itself + # a `Directory` and its associated metadata. + class GoogleDevtoolsRemoteexecutionV1testDirectoryNode + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # The name of the directory. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @name = args[:name] if args.key?(:name) + end + end + + # Metadata about an ongoing + # execution, which + # will be contained in the metadata + # field of the + # Operation. + class GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `actionDigest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :action_digest + + # + # Corresponds to the JSON property `stage` + # @return [String] + attr_accessor :stage + + # If set, the client can use this name with + # ByteStream.Read to stream the + # standard error. + # Corresponds to the JSON property `stderrStreamName` + # @return [String] + attr_accessor :stderr_stream_name + + # If set, the client can use this name with + # ByteStream.Read to stream the + # standard output. + # Corresponds to the JSON property `stdoutStreamName` + # @return [String] + attr_accessor :stdout_stream_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_digest = args[:action_digest] if args.key?(:action_digest) + @stage = args[:stage] if args.key?(:stage) + @stderr_stream_name = args[:stderr_stream_name] if args.key?(:stderr_stream_name) + @stdout_stream_name = args[:stdout_stream_name] if args.key?(:stdout_stream_name) + end + end + + # The response message for + # Execution.Execute, + # which will be contained in the response + # field of the + # Operation. + class GoogleDevtoolsRemoteexecutionV1testExecuteResponse + include Google::Apis::Core::Hashable + + # True if the result was served from cache, false if it was executed. + # Corresponds to the JSON property `cachedResult` + # @return [Boolean] + attr_accessor :cached_result + alias_method :cached_result?, :cached_result + + # An ActionResult represents the result of an + # Action being run. + # Corresponds to the JSON property `result` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testActionResult] + attr_accessor :result + + # An optional list of additional log outputs the server wishes to provide. A + # server can use this to return execution-specific logs however it wishes. + # This is intended primarily to make it easier for users to debug issues that + # may be outside of the actual job execution, such as by identifying the + # worker executing the action or by providing logs from the worker's setup + # phase. The keys SHOULD be human readable so that a client can display them + # to a user. + # Corresponds to the JSON property `serverLogs` + # @return [Hash] + attr_accessor :server_logs + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `status` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleRpcStatus] + attr_accessor :status + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cached_result = args[:cached_result] if args.key?(:cached_result) + @result = args[:result] if args.key?(:result) + @server_logs = args[:server_logs] if args.key?(:server_logs) + @status = args[:status] if args.key?(:status) + end + end + + # A `FileNode` represents a single file and associated metadata. + class GoogleDevtoolsRemoteexecutionV1testFileNode + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # True if file is executable, false otherwise. + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The name of the file. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @name = args[:name] if args.key?(:name) + end + end + + # A `LogFile` is a log stored in the CAS. + class GoogleDevtoolsRemoteexecutionV1testLogFile + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # This is a hint as to the purpose of the log, and is set to true if the log + # is human-readable text that can be usefully displayed to a user, and false + # otherwise. For instance, if a command-line client wishes to print the + # server logs to the terminal for a failed action, this allows it to avoid + # displaying a binary file. + # Corresponds to the JSON property `humanReadable` + # @return [Boolean] + attr_accessor :human_readable + alias_method :human_readable?, :human_readable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @human_readable = args[:human_readable] if args.key?(:human_readable) + end + end + + # An `OutputDirectory` is the output in an `ActionResult` corresponding to a + # directory's full contents rather than a single file. + class GoogleDevtoolsRemoteexecutionV1testOutputDirectory + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # The full path of the directory relative to the working directory. The path + # separator is a forward slash `/`. Since this is a relative path, it MUST + # NOT begin with a leading forward slash. The empty string value is allowed, + # and it denotes the entire working directory. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `treeDigest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :tree_digest + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @path = args[:path] if args.key?(:path) + @tree_digest = args[:tree_digest] if args.key?(:tree_digest) + end + end + + # An `OutputFile` is similar to a + # FileNode, but it is + # tailored for output as part of an `ActionResult`. It allows a full file path + # rather than only a name, and allows the server to include content inline. + # `OutputFile` is binary-compatible with `FileNode`. + class GoogleDevtoolsRemoteexecutionV1testOutputFile + include Google::Apis::Core::Hashable + + # The raw content of the file. + # This field may be used by the server to provide the content of a file + # inline in an + # ActionResult and + # avoid requiring that the client make a separate call to + # [ContentAddressableStorage.GetBlob] to retrieve it. + # The client SHOULD NOT assume that it will get raw content with any request, + # and always be prepared to retrieve it via `digest`. + # Corresponds to the JSON property `content` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :content + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # True if file is executable, false otherwise. + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The full path of the file relative to the input root, including the + # filename. The path separator is a forward slash `/`. Since this is a + # relative path, it MUST NOT begin with a leading forward slash. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @content = args[:content] if args.key?(:content) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @path = args[:path] if args.key?(:path) + end + end + + # An optional Metadata to attach to any RPC request to tell the server about an + # external context of the request. The server may use this for logging or other + # purposes. To use it, the client attaches the header to the call using the + # canonical proto serialization: + # name: google.devtools.remoteexecution.v1test.requestmetadata-bin + # contents: the base64 encoded binary RequestMetadata message. + class GoogleDevtoolsRemoteexecutionV1testRequestMetadata + include Google::Apis::Core::Hashable + + # An identifier that ties multiple requests to the same action. + # For example, multiple requests to the CAS, Action Cache, and Execution + # API are used in order to compile foo.cc. + # Corresponds to the JSON property `actionId` + # @return [String] + attr_accessor :action_id + + # An identifier to tie multiple tool invocations together. For example, + # runs of foo_test, bar_test and baz_test on a post-submit of a given patch. + # Corresponds to the JSON property `correlatedInvocationsId` + # @return [String] + attr_accessor :correlated_invocations_id + + # Details for the tool used to call the API. + # Corresponds to the JSON property `toolDetails` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testToolDetails] + attr_accessor :tool_details + + # An identifier that ties multiple actions together to a final result. + # For example, multiple actions are required to build and run foo_test. + # Corresponds to the JSON property `toolInvocationId` + # @return [String] + attr_accessor :tool_invocation_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_id = args[:action_id] if args.key?(:action_id) + @correlated_invocations_id = args[:correlated_invocations_id] if args.key?(:correlated_invocations_id) + @tool_details = args[:tool_details] if args.key?(:tool_details) + @tool_invocation_id = args[:tool_invocation_id] if args.key?(:tool_invocation_id) + end + end + + # Details for the tool used to call the API. + class GoogleDevtoolsRemoteexecutionV1testToolDetails + include Google::Apis::Core::Hashable + + # Name of the tool, e.g. bazel. + # Corresponds to the JSON property `toolName` + # @return [String] + attr_accessor :tool_name + + # Version of the tool used for the request, e.g. 5.0.3. + # Corresponds to the JSON property `toolVersion` + # @return [String] + attr_accessor :tool_version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @tool_name = args[:tool_name] if args.key?(:tool_name) + @tool_version = args[:tool_version] if args.key?(:tool_version) + end + end + + # A `Tree` contains all the + # Directory protos in a + # single directory Merkle tree, compressed into one message. + class GoogleDevtoolsRemoteexecutionV1testTree + include Google::Apis::Core::Hashable + + # All the child directories: the directories referred to by the root and, + # recursively, all its children. In order to reconstruct the directory tree, + # the client must take the digests of each of the child directories and then + # build up a tree starting from the `root`. + # Corresponds to the JSON property `children` + # @return [Array] + attr_accessor :children + + # A `Directory` represents a directory node in a file tree, containing zero or + # more children FileNodes + # and DirectoryNodes. + # Each `Node` contains its name in the directory, the digest of its content + # (either a file blob or a `Directory` proto), as well as possibly some + # metadata about the file or directory. + # In order to ensure that two equivalent directory trees hash to the same + # value, the following restrictions MUST be obeyed when constructing a + # a `Directory`: + # - Every child in the directory must have a path of exactly one segment. + # Multiple levels of directory hierarchy may not be collapsed. + # - Each child in the directory must have a unique path segment (file name). + # - The files and directories in the directory must each be sorted in + # lexicographical order by path. The path strings must be sorted by code + # point, equivalently, by UTF-8 bytes. + # A `Directory` that obeys the restrictions is said to be in canonical form. + # As an example, the following could be used for a file named `bar` and a + # directory named `foo` with an executable file named `baz` (hashes shortened + # for readability): + # ```json + # // (Directory proto) + # ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # ` + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ``` + # Corresponds to the JSON property `root` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDirectory] + attr_accessor :root + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @children = args[:children] if args.key?(:children) + @root = args[:root] if args.key?(:root) + end + end + + # AdminTemp is a prelimiary set of administration tasks. It's called "Temp" + # because we do not yet know the best way to represent admin tasks; it's + # possible that this will be entirely replaced in later versions of this API. + # If this message proves to be sufficient, it will be renamed in the alpha or + # beta release of this API. + # This message (suitably marshalled into a protobuf.Any) can be used as the + # inline_assignment field in a lease; the lease assignment field should simply + # be `"admin"` in these cases. + # This message is heavily based on Swarming administration tasks from the LUCI + # project (http://github.com/luci/luci-py/appengine/swarming). + class GoogleDevtoolsRemoteworkersV1test2AdminTemp + include Google::Apis::Core::Hashable + + # The argument to the admin action; see `Command` for semantics. + # Corresponds to the JSON property `arg` + # @return [String] + attr_accessor :arg + + # The admin action; see `Command` for legal values. + # Corresponds to the JSON property `command` + # @return [String] + attr_accessor :command + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arg = args[:arg] if args.key?(:arg) + @command = args[:command] if args.key?(:command) + end + end + + # Describes a blob of binary content with its digest. + class GoogleDevtoolsRemoteworkersV1test2Blob + include Google::Apis::Core::Hashable + + # The contents of the blob. + # Corresponds to the JSON property `contents` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :contents + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :digest + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @contents = args[:contents] if args.key?(:contents) + @digest = args[:digest] if args.key?(:digest) + end + end + + # DEPRECATED - use CommandResult instead. + # Describes the actual outputs from the task. + class GoogleDevtoolsRemoteworkersV1test2CommandOutputs + include Google::Apis::Core::Hashable + + # exit_code is only fully reliable if the status' code is OK. If the task + # exceeded its deadline or was cancelled, the process may still produce an + # exit code as it is cancelled, and this will be populated, but a successful + # (zero) is unlikely to be correct unless the status code is OK. + # Corresponds to the JSON property `exitCode` + # @return [Fixnum] + attr_accessor :exit_code + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `outputs` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :outputs + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @exit_code = args[:exit_code] if args.key?(:exit_code) + @outputs = args[:outputs] if args.key?(:outputs) + end + end + + # DEPRECATED - use CommandResult instead. + # Can be used as part of CompleteRequest.metadata, or are part of a more + # sophisticated message. + class GoogleDevtoolsRemoteworkersV1test2CommandOverhead + include Google::Apis::Core::Hashable + + # The elapsed time between calling Accept and Complete. The server will also + # have its own idea of what this should be, but this excludes the overhead of + # the RPCs and the bot response time. + # Corresponds to the JSON property `duration` + # @return [String] + attr_accessor :duration + + # The amount of time *not* spent executing the command (ie + # uploading/downloading files). + # Corresponds to the JSON property `overhead` + # @return [String] + attr_accessor :overhead + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @duration = args[:duration] if args.key?(:duration) + @overhead = args[:overhead] if args.key?(:overhead) + end + end + + # All information about the execution of a command, suitable for providing as + # the Bots interface's `Lease.result` field. + class GoogleDevtoolsRemoteworkersV1test2CommandResult + include Google::Apis::Core::Hashable + + # The elapsed time between calling Accept and Complete. The server will also + # have its own idea of what this should be, but this excludes the overhead of + # the RPCs and the bot response time. + # Corresponds to the JSON property `duration` + # @return [String] + attr_accessor :duration + + # The exit code of the process. An exit code of "0" should only be trusted if + # `status` has a code of OK (otherwise it may simply be unset). + # Corresponds to the JSON property `exitCode` + # @return [Fixnum] + attr_accessor :exit_code + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `outputs` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :outputs + + # The amount of time *not* spent executing the command (ie + # uploading/downloading files). + # Corresponds to the JSON property `overhead` + # @return [String] + attr_accessor :overhead + + # Implementation-dependent statistics about the task. Both servers and bots + # may define messages which can be encoded here; bots are free to provide + # statistics in multiple formats, and servers are free to choose one or more + # of the values to process and ignore others. In particular, it is *not* + # considered an error for the bot to provide the server with a field that it + # doesn't know about. + # Corresponds to the JSON property `statistics` + # @return [Array>] + attr_accessor :statistics + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `status` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleRpcStatus] + attr_accessor :status + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @duration = args[:duration] if args.key?(:duration) + @exit_code = args[:exit_code] if args.key?(:exit_code) + @outputs = args[:outputs] if args.key?(:outputs) + @overhead = args[:overhead] if args.key?(:overhead) + @statistics = args[:statistics] if args.key?(:statistics) + @status = args[:status] if args.key?(:status) + end + end + + # Describes a shell-style task to execute, suitable for providing as the Bots + # interface's `Lease.payload` field. + class GoogleDevtoolsRemoteworkersV1test2CommandTask + include Google::Apis::Core::Hashable + + # Describes the expected outputs of the command. + # Corresponds to the JSON property `expectedOutputs` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs] + attr_accessor :expected_outputs + + # Describes the inputs to a shell-style task. + # Corresponds to the JSON property `inputs` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs] + attr_accessor :inputs + + # Describes the timeouts associated with this task. + # Corresponds to the JSON property `timeouts` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts] + attr_accessor :timeouts + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @expected_outputs = args[:expected_outputs] if args.key?(:expected_outputs) + @inputs = args[:inputs] if args.key?(:inputs) + @timeouts = args[:timeouts] if args.key?(:timeouts) + end + end + + # Describes the inputs to a shell-style task. + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs + include Google::Apis::Core::Hashable + + # The command itself to run (e.g., argv). + # This field should be passed directly to the underlying operating system, + # and so it must be sensible to that operating system. For example, on + # Windows, the first argument might be "C:\Windows\System32\ping.exe" - + # that is, using drive letters and backslashes. A command for a *nix + # system, on the other hand, would use forward slashes. + # All other fields in the RWAPI must consistently use forward slashes, + # since those fields may be interpretted by both the service and the bot. + # Corresponds to the JSON property `arguments` + # @return [Array] + attr_accessor :arguments + + # All environment variables required by the task. + # Corresponds to the JSON property `environmentVariables` + # @return [Array] + attr_accessor :environment_variables + + # The input filesystem to be set up prior to the task beginning. The + # contents should be a repeated set of FileMetadata messages though other + # formats are allowed if better for the implementation (eg, a LUCI-style + # .isolated file). + # This field is repeated since implementations might want to cache the + # metadata, in which case it may be useful to break up portions of the + # filesystem that change frequently (eg, specific input files) from those + # that don't (eg, standard header files). + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + # Inline contents for blobs expected to be needed by the bot to execute the + # task. For example, contents of entries in `files` or blobs that are + # indirectly referenced by an entry there. + # The bot should check against this list before downloading required task + # inputs to reduce the number of communications between itself and the + # remote CAS server. + # Corresponds to the JSON property `inlineBlobs` + # @return [Array] + attr_accessor :inline_blobs + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arguments = args[:arguments] if args.key?(:arguments) + @environment_variables = args[:environment_variables] if args.key?(:environment_variables) + @files = args[:files] if args.key?(:files) + @inline_blobs = args[:inline_blobs] if args.key?(:inline_blobs) + end + end + + # An environment variable required by this task. + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable + include Google::Apis::Core::Hashable + + # The envvar name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The envvar value. + # Corresponds to the JSON property `value` + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # Describes the expected outputs of the command. + class GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs + include Google::Apis::Core::Hashable + + # A list of expected directories, relative to the execution root. All paths + # MUST be delimited by forward slashes. + # Corresponds to the JSON property `directories` + # @return [Array] + attr_accessor :directories + + # A list of expected files, relative to the execution root. All paths + # MUST be delimited by forward slashes. + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + # The destination to which any stderr should be sent. The method by which + # the bot should send the stream contents to that destination is not + # defined in this API. As examples, the destination could be a file + # referenced in the `files` field in this message, or it could be a URI + # that must be written via the ByteStream API. + # Corresponds to the JSON property `stderrDestination` + # @return [String] + attr_accessor :stderr_destination + + # The destination to which any stdout should be sent. The method by which + # the bot should send the stream contents to that destination is not + # defined in this API. As examples, the destination could be a file + # referenced in the `files` field in this message, or it could be a URI + # that must be written via the ByteStream API. + # Corresponds to the JSON property `stdoutDestination` + # @return [String] + attr_accessor :stdout_destination + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @directories = args[:directories] if args.key?(:directories) + @files = args[:files] if args.key?(:files) + @stderr_destination = args[:stderr_destination] if args.key?(:stderr_destination) + @stdout_destination = args[:stdout_destination] if args.key?(:stdout_destination) + end + end + + # Describes the timeouts associated with this task. + class GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts + include Google::Apis::Core::Hashable + + # This specifies the maximum time that the task can run, excluding the + # time required to download inputs or upload outputs. That is, the worker + # will terminate the task if it runs longer than this. + # Corresponds to the JSON property `execution` + # @return [String] + attr_accessor :execution + + # This specifies the maximum amount of time the task can be idle - that is, + # go without generating some output in either stdout or stderr. If the + # process is silent for more than the specified time, the worker will + # terminate the task. + # Corresponds to the JSON property `idle` + # @return [String] + attr_accessor :idle + + # If the execution or IO timeouts are exceeded, the worker will try to + # gracefully terminate the task and return any existing logs. However, + # tasks may be hard-frozen in which case this process will fail. This + # timeout specifies how long to wait for a terminated task to shut down + # gracefully (e.g. via SIGTERM) before we bring down the hammer (e.g. + # SIGKILL on *nix, CTRL_BREAK_EVENT on Windows). + # Corresponds to the JSON property `shutdown` + # @return [String] + attr_accessor :shutdown + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @execution = args[:execution] if args.key?(:execution) + @idle = args[:idle] if args.key?(:idle) + @shutdown = args[:shutdown] if args.key?(:shutdown) + end + end + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + class GoogleDevtoolsRemoteworkersV1test2Digest + include Google::Apis::Core::Hashable + + # A string-encoded hash (eg "1a2b3c", not the byte array [0x1a, 0x2b, 0x3c]) + # using an implementation-defined hash algorithm (eg SHA-256). + # Corresponds to the JSON property `hash` + # @return [String] + attr_accessor :hash_prop + + # The size of the contents. While this is not strictly required as part of an + # identifier (after all, any given hash will have exactly one canonical + # size), it's useful in almost all cases when one might want to send or + # retrieve blobs of content and is included here for this reason. + # Corresponds to the JSON property `sizeBytes` + # @return [Fixnum] + attr_accessor :size_bytes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @hash_prop = args[:hash_prop] if args.key?(:hash_prop) + @size_bytes = args[:size_bytes] if args.key?(:size_bytes) + end + end + + # The contents of a directory. Similar to the equivalent message in the Remote + # Execution API. + class GoogleDevtoolsRemoteworkersV1test2Directory + include Google::Apis::Core::Hashable + + # Any subdirectories + # Corresponds to the JSON property `directories` + # @return [Array] + attr_accessor :directories + + # The files in this directory + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @directories = args[:directories] if args.key?(:directories) + @files = args[:files] if args.key?(:files) + end + end + + # The metadata for a directory. Similar to the equivalent message in the Remote + # Execution API. + class GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata + include Google::Apis::Core::Hashable + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :digest + + # The path of the directory, as in FileMetadata.path. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @path = args[:path] if args.key?(:path) + end + end + + # The metadata for a file. Similar to the equivalent message in the Remote + # Execution API. + class GoogleDevtoolsRemoteworkersV1test2FileMetadata + include Google::Apis::Core::Hashable + + # If the file is small enough, its contents may also or alternatively be + # listed here. + # Corresponds to the JSON property `contents` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :contents + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :digest + + # Properties of the file + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The path of this file. If this message is part of the + # CommandOutputs.outputs fields, the path is relative to the execution root + # and must correspond to an entry in CommandTask.outputs.files. If this + # message is part of a Directory message, then the path is relative to the + # root of that directory. All paths MUST be delimited by forward slashes. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @contents = args[:contents] if args.key?(:contents) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @path = args[:path] if args.key?(:path) + end + end + + # This resource represents a long-running operation that is the result of a + # network API call. + class GoogleLongrunningOperation + include Google::Apis::Core::Hashable + + # 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. + # Corresponds to the JSON property `done` + # @return [Boolean] + attr_accessor :done + alias_method :done?, :done + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `error` + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleRpcStatus] + attr_accessor :error + + # 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. + # Corresponds to the JSON property `metadata` + # @return [Hash] + attr_accessor :metadata + + # 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 have the format of `operations/some/unique/name`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The normal response of the operation in case of success. If the original + # method returns no data on success, such as `Delete`, the response is + # `google.protobuf.Empty`. If the original method is standard + # `Get`/`Create`/`Update`, the response should be the resource. For other + # methods, the response should have the type `XxxResponse`, where `Xxx` + # is the original method name. For example, if the original method name + # is `TakeSnapshot()`, the inferred response type is + # `TakeSnapshotResponse`. + # Corresponds to the JSON property `response` + # @return [Hash] + attr_accessor :response + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @done = args[:done] if args.key?(:done) + @error = args[:error] if args.key?(:error) + @metadata = args[:metadata] if args.key?(:metadata) + @name = args[:name] if args.key?(:name) + @response = args[:response] if args.key?(:response) + end + end + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + class GoogleRpcStatus + include Google::Apis::Core::Hashable + + # The status code, which should be an enum value of google.rpc.Code. + # Corresponds to the JSON property `code` + # @return [Fixnum] + attr_accessor :code + + # A list of messages that carry the error details. There is a common set of + # message types for APIs to use. + # Corresponds to the JSON property `details` + # @return [Array>] + attr_accessor :details + + # 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. + # Corresponds to the JSON property `message` + # @return [String] + attr_accessor :message + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @code = args[:code] if args.key?(:code) + @details = args[:details] if args.key?(:details) + @message = args[:message] if args.key?(:message) + end + end + end + end +end diff --git a/generated/google/apis/remotebuildexecution_v1alpha/representations.rb b/generated/google/apis/remotebuildexecution_v1alpha/representations.rb new file mode 100644 index 000000000..a2469ac1a --- /dev/null +++ b/generated/google/apis/remotebuildexecution_v1alpha/representations.rb @@ -0,0 +1,1113 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module RemotebuildexecutionV1alpha + + class BuildBazelRemoteExecutionV2Action + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ActionResult + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Command + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2CommandEnvironmentVariable + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Digest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Directory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2DirectoryNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ExecuteOperationMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ExecuteResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ExecutedActionMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2FileNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2LogFile + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2OutputDirectory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2OutputFile + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2OutputSymlink + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Platform + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2PlatformProperty + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2RequestMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2SymlinkNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ToolDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Tree + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildbotCommandDurations + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildbotCommandEvents + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testActionResult + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testCommand + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testDigest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testDirectory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testDirectoryNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testExecuteResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testFileNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testLogFile + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testOutputDirectory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testOutputFile + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testRequestMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testToolDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testTree + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2AdminTemp + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2Blob + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandOutputs + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandOverhead + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandResult + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTask + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2Digest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2Directory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2FileMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleLongrunningOperation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleRpcStatus + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Action + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :command_digest, as: 'commandDigest', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest::Representation + + property :do_not_cache, as: 'doNotCache' + property :input_root_digest, as: 'inputRootDigest', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest::Representation + + property :timeout, as: 'timeout' + end + end + + class BuildBazelRemoteExecutionV2ActionResult + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :execution_metadata, as: 'executionMetadata', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2ExecutedActionMetadata, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2ExecutedActionMetadata::Representation + + property :exit_code, as: 'exitCode' + collection :output_directories, as: 'outputDirectories', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2OutputDirectory, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2OutputDirectory::Representation + + collection :output_directory_symlinks, as: 'outputDirectorySymlinks', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2OutputSymlink, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2OutputSymlink::Representation + + collection :output_file_symlinks, as: 'outputFileSymlinks', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2OutputSymlink, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2OutputSymlink::Representation + + collection :output_files, as: 'outputFiles', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2OutputFile, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2OutputFile::Representation + + property :stderr_digest, as: 'stderrDigest', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest::Representation + + property :stderr_raw, :base64 => true, as: 'stderrRaw' + property :stdout_digest, as: 'stdoutDigest', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest::Representation + + property :stdout_raw, :base64 => true, as: 'stdoutRaw' + end + end + + class BuildBazelRemoteExecutionV2Command + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :arguments, as: 'arguments' + collection :environment_variables, as: 'environmentVariables', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2CommandEnvironmentVariable, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2CommandEnvironmentVariable::Representation + + collection :output_directories, as: 'outputDirectories' + collection :output_files, as: 'outputFiles' + property :platform, as: 'platform', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Platform, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Platform::Representation + + property :working_directory, as: 'workingDirectory' + end + end + + class BuildBazelRemoteExecutionV2CommandEnvironmentVariable + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :value, as: 'value' + end + end + + class BuildBazelRemoteExecutionV2Digest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :hash_prop, as: 'hash' + property :size_bytes, :numeric_string => true, as: 'sizeBytes' + end + end + + class BuildBazelRemoteExecutionV2Directory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :directories, as: 'directories', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2DirectoryNode, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2DirectoryNode::Representation + + collection :files, as: 'files', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2FileNode, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2FileNode::Representation + + collection :symlinks, as: 'symlinks', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2SymlinkNode, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2SymlinkNode::Representation + + end + end + + class BuildBazelRemoteExecutionV2DirectoryNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest::Representation + + property :name, as: 'name' + end + end + + class BuildBazelRemoteExecutionV2ExecuteOperationMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_digest, as: 'actionDigest', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest::Representation + + property :stage, as: 'stage' + property :stderr_stream_name, as: 'stderrStreamName' + property :stdout_stream_name, as: 'stdoutStreamName' + end + end + + class BuildBazelRemoteExecutionV2ExecuteResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cached_result, as: 'cachedResult' + property :result, as: 'result', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2ActionResult, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2ActionResult::Representation + + hash :server_logs, as: 'serverLogs', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2LogFile, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2LogFile::Representation + + property :status, as: 'status', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleRpcStatus::Representation + + end + end + + class BuildBazelRemoteExecutionV2ExecutedActionMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :execution_completed_timestamp, as: 'executionCompletedTimestamp' + property :execution_start_timestamp, as: 'executionStartTimestamp' + property :input_fetch_completed_timestamp, as: 'inputFetchCompletedTimestamp' + property :input_fetch_start_timestamp, as: 'inputFetchStartTimestamp' + property :output_upload_completed_timestamp, as: 'outputUploadCompletedTimestamp' + property :output_upload_start_timestamp, as: 'outputUploadStartTimestamp' + property :queued_timestamp, as: 'queuedTimestamp' + property :worker, as: 'worker' + property :worker_completed_timestamp, as: 'workerCompletedTimestamp' + property :worker_start_timestamp, as: 'workerStartTimestamp' + end + end + + class BuildBazelRemoteExecutionV2FileNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest::Representation + + property :is_executable, as: 'isExecutable' + property :name, as: 'name' + end + end + + class BuildBazelRemoteExecutionV2LogFile + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest::Representation + + property :human_readable, as: 'humanReadable' + end + end + + class BuildBazelRemoteExecutionV2OutputDirectory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :path, as: 'path' + property :tree_digest, as: 'treeDigest', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest::Representation + + end + end + + class BuildBazelRemoteExecutionV2OutputFile + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Digest::Representation + + property :is_executable, as: 'isExecutable' + property :path, as: 'path' + end + end + + class BuildBazelRemoteExecutionV2OutputSymlink + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :path, as: 'path' + property :target, as: 'target' + end + end + + class BuildBazelRemoteExecutionV2Platform + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :properties, as: 'properties', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2PlatformProperty, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2PlatformProperty::Representation + + end + end + + class BuildBazelRemoteExecutionV2PlatformProperty + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :value, as: 'value' + end + end + + class BuildBazelRemoteExecutionV2RequestMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_id, as: 'actionId' + property :correlated_invocations_id, as: 'correlatedInvocationsId' + property :tool_details, as: 'toolDetails', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2ToolDetails, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2ToolDetails::Representation + + property :tool_invocation_id, as: 'toolInvocationId' + end + end + + class BuildBazelRemoteExecutionV2SymlinkNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :target, as: 'target' + end + end + + class BuildBazelRemoteExecutionV2ToolDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :tool_name, as: 'toolName' + property :tool_version, as: 'toolVersion' + end + end + + class BuildBazelRemoteExecutionV2Tree + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :children, as: 'children', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Directory, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Directory::Representation + + property :root, as: 'root', class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Directory, decorator: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Directory::Representation + + end + end + + class GoogleDevtoolsRemotebuildbotCommandDurations + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :docker_prep, as: 'dockerPrep' + property :download, as: 'download' + property :execution, as: 'execution' + property :iso_prep_done, as: 'isoPrepDone' + property :overall, as: 'overall' + property :stdout, as: 'stdout' + property :upload, as: 'upload' + end + end + + class GoogleDevtoolsRemotebuildbotCommandEvents + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :docker_cache_hit, as: 'dockerCacheHit' + property :num_errors, :numeric_string => true, as: 'numErrors' + property :num_warnings, :numeric_string => true, as: 'numWarnings' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :instance, as: 'instance', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance::Representation + + property :instance_id, as: 'instanceId' + property :parent, as: 'parent' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :parent, as: 'parent' + property :pool_id, as: 'poolId' + property :worker_pool, as: 'workerPool', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool::Representation + + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :location, as: 'location' + property :name, as: 'name' + property :state, as: 'state' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :parent, as: 'parent' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :instances, as: 'instances', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance::Representation + + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :parent, as: 'parent' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :worker_pools, as: 'workerPools', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool::Representation + + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :update_mask, as: 'updateMask' + property :worker_pool, as: 'workerPool', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool::Representation + + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :disk_size_gb, :numeric_string => true, as: 'diskSizeGb' + property :disk_type, as: 'diskType' + property :machine_type, as: 'machineType' + property :min_cpu_platform, as: 'minCpuPlatform' + property :reserved, as: 'reserved' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :state, as: 'state' + property :worker_config, as: 'workerConfig', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig::Representation + + property :worker_count, :numeric_string => true, as: 'workerCount' + end + end + + class GoogleDevtoolsRemoteexecutionV1testActionResult + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :exit_code, as: 'exitCode' + collection :output_directories, as: 'outputDirectories', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testOutputDirectory, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testOutputDirectory::Representation + + collection :output_files, as: 'outputFiles', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testOutputFile, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testOutputFile::Representation + + property :stderr_digest, as: 'stderrDigest', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :stderr_raw, :base64 => true, as: 'stderrRaw' + property :stdout_digest, as: 'stdoutDigest', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :stdout_raw, :base64 => true, as: 'stdoutRaw' + end + end + + class GoogleDevtoolsRemoteexecutionV1testCommand + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :arguments, as: 'arguments' + collection :environment_variables, as: 'environmentVariables', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable::Representation + + end + end + + class GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :value, as: 'value' + end + end + + class GoogleDevtoolsRemoteexecutionV1testDigest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :hash_prop, as: 'hash' + property :size_bytes, :numeric_string => true, as: 'sizeBytes' + end + end + + class GoogleDevtoolsRemoteexecutionV1testDirectory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :directories, as: 'directories', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDirectoryNode, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDirectoryNode::Representation + + collection :files, as: 'files', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testFileNode, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testFileNode::Representation + + end + end + + class GoogleDevtoolsRemoteexecutionV1testDirectoryNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_digest, as: 'actionDigest', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :stage, as: 'stage' + property :stderr_stream_name, as: 'stderrStreamName' + property :stdout_stream_name, as: 'stdoutStreamName' + end + end + + class GoogleDevtoolsRemoteexecutionV1testExecuteResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cached_result, as: 'cachedResult' + property :result, as: 'result', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testActionResult, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testActionResult::Representation + + hash :server_logs, as: 'serverLogs', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testLogFile, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testLogFile::Representation + + property :status, as: 'status', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleRpcStatus::Representation + + end + end + + class GoogleDevtoolsRemoteexecutionV1testFileNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :is_executable, as: 'isExecutable' + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemoteexecutionV1testLogFile + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :human_readable, as: 'humanReadable' + end + end + + class GoogleDevtoolsRemoteexecutionV1testOutputDirectory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :path, as: 'path' + property :tree_digest, as: 'treeDigest', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + end + end + + class GoogleDevtoolsRemoteexecutionV1testOutputFile + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :content, :base64 => true, as: 'content' + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :is_executable, as: 'isExecutable' + property :path, as: 'path' + end + end + + class GoogleDevtoolsRemoteexecutionV1testRequestMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_id, as: 'actionId' + property :correlated_invocations_id, as: 'correlatedInvocationsId' + property :tool_details, as: 'toolDetails', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testToolDetails, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testToolDetails::Representation + + property :tool_invocation_id, as: 'toolInvocationId' + end + end + + class GoogleDevtoolsRemoteexecutionV1testToolDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :tool_name, as: 'toolName' + property :tool_version, as: 'toolVersion' + end + end + + class GoogleDevtoolsRemoteexecutionV1testTree + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :children, as: 'children', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDirectory, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDirectory::Representation + + property :root, as: 'root', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDirectory, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteexecutionV1testDirectory::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2AdminTemp + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :arg, as: 'arg' + property :command, as: 'command' + end + end + + class GoogleDevtoolsRemoteworkersV1test2Blob + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :contents, :base64 => true, as: 'contents' + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandOutputs + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :exit_code, as: 'exitCode' + property :outputs, as: 'outputs', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandOverhead + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :duration, as: 'duration' + property :overhead, as: 'overhead' + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandResult + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :duration, as: 'duration' + property :exit_code, as: 'exitCode' + property :outputs, as: 'outputs', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + property :overhead, as: 'overhead' + collection :statistics, as: 'statistics' + property :status, as: 'status', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleRpcStatus::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTask + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :expected_outputs, as: 'expectedOutputs', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs::Representation + + property :inputs, as: 'inputs', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs::Representation + + property :timeouts, as: 'timeouts', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :arguments, as: 'arguments' + collection :environment_variables, as: 'environmentVariables', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable::Representation + + collection :files, as: 'files', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + collection :inline_blobs, as: 'inlineBlobs', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Blob, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Blob::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :value, as: 'value' + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :directories, as: 'directories' + collection :files, as: 'files' + property :stderr_destination, as: 'stderrDestination' + property :stdout_destination, as: 'stdoutDestination' + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :execution, as: 'execution' + property :idle, as: 'idle' + property :shutdown, as: 'shutdown' + end + end + + class GoogleDevtoolsRemoteworkersV1test2Digest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :hash_prop, as: 'hash' + property :size_bytes, :numeric_string => true, as: 'sizeBytes' + end + end + + class GoogleDevtoolsRemoteworkersV1test2Directory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :directories, as: 'directories', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata::Representation + + collection :files, as: 'files', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2FileMetadata, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2FileMetadata::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + property :path, as: 'path' + end + end + + class GoogleDevtoolsRemoteworkersV1test2FileMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :contents, :base64 => true, as: 'contents' + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + property :is_executable, as: 'isExecutable' + property :path, as: 'path' + end + end + + class GoogleLongrunningOperation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :done, as: 'done' + property :error, as: 'error', class: Google::Apis::RemotebuildexecutionV1alpha::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV1alpha::GoogleRpcStatus::Representation + + hash :metadata, as: 'metadata' + property :name, as: 'name' + hash :response, as: 'response' + end + end + + class GoogleRpcStatus + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :code, as: 'code' + collection :details, as: 'details' + property :message, as: 'message' + end + end + end + end +end diff --git a/generated/google/apis/remotebuildexecution_v1alpha/service.rb b/generated/google/apis/remotebuildexecution_v1alpha/service.rb new file mode 100644 index 000000000..e7b7befb7 --- /dev/null +++ b/generated/google/apis/remotebuildexecution_v1alpha/service.rb @@ -0,0 +1,400 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module RemotebuildexecutionV1alpha + # Remote Build Execution API + # + # Supplies a Remote Execution API service for tools such as bazel. + # + # @example + # require 'google/apis/remotebuildexecution_v1alpha' + # + # Remotebuildexecution = Google::Apis::RemotebuildexecutionV1alpha # Alias the module + # service = Remotebuildexecution::RemoteBuildExecutionService.new + # + # @see https://cloud.google.com/remote-build-execution/docs/ + class RemoteBuildExecutionService < Google::Apis::Core::BaseService + # @return [String] + # 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. + attr_accessor :key + + # @return [String] + # 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. + attr_accessor :quota_user + + def initialize + super('https://admin-remotebuildexecution.googleapis.com/', '') + @batch_path = 'batch' + end + + # Creates a new instance in the specified region. + # Returns a long running operation which contains an instance on completion. + # While the long running operation is in progress, any call to `GetInstance` + # returns an instance in state `CREATING`. + # @param [String] parent + # Resource name of the project containing the instance. + # Format: `projects/[PROJECT_ID]`. + # @param [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest] google_devtools_remotebuildexecution_admin_v1alpha_create_instance_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_project_instance(parent, google_devtools_remotebuildexecution_admin_v1alpha_create_instance_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha/{+parent}/instances', options) + command.request_representation = Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest::Representation + command.request_object = google_devtools_remotebuildexecution_admin_v1alpha_create_instance_request_object + command.response_representation = Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation + command.params['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Deletes the specified instance. + # Returns a long running operation which contains a `google.protobuf.Empty` + # response on completion. + # Deleting an instance with worker pools in it will delete these worker + # pools. + # @param [String] name + # Name of the instance to delete. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def delete_project_instance(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:delete, 'v1alpha/{+name}', options) + command.response_representation = Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Returns the specified instance. + # @param [String] name + # Name of the instance to retrieve. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_instance(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha/{+name}', options) + command.response_representation = Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists instances in a project. + # @param [String] parent + # Resource name of the project. + # Format: `projects/[PROJECT_ID]`. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_instances(parent, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha/{+parent}/instances', options) + command.response_representation = Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse + command.params['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Creates a new worker pool with a specified size and configuration. + # Returns a long running operation which contains a worker pool on + # completion. While the long running operation is in progress, any call to + # `GetWorkerPool` returns a worker pool in state `CREATING`. + # @param [String] parent + # Resource name of the instance in which to create the new worker pool. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # @param [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest] google_devtools_remotebuildexecution_admin_v1alpha_create_worker_pool_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_project_instance_workerpool(parent, google_devtools_remotebuildexecution_admin_v1alpha_create_worker_pool_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1alpha/{+parent}/workerpools', options) + command.request_representation = Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest::Representation + command.request_object = google_devtools_remotebuildexecution_admin_v1alpha_create_worker_pool_request_object + command.response_representation = Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation + command.params['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Deletes the specified worker pool. + # Returns a long running operation, which contains a `google.protobuf.Empty` + # response on completion. + # While the long running operation is in progress, any call to + # `GetWorkerPool` returns a worker pool in state `DELETING`. + # @param [String] name + # Name of the worker pool to delete. + # Format: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def delete_project_instance_workerpool(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:delete, 'v1alpha/{+name}', options) + command.response_representation = Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Returns the specified worker pool. + # @param [String] name + # Name of the worker pool to retrieve. + # Format: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_instance_workerpool(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha/{+name}', options) + command.response_representation = Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists worker pools in an instance. + # @param [String] parent + # Resource name of the instance. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_instance_workerpools(parent, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha/{+parent}/workerpools', options) + command.response_representation = Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse + command.params['parent'] = parent unless parent.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Updates an existing worker pool with a specified size and/or configuration. + # Returns a long running operation, which contains a worker pool on + # completion. While the long running operation is in progress, any call to + # `GetWorkerPool` returns a worker pool in state `UPDATING`. + # @param [String] name + # WorkerPool resource name formatted as: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. + # name should not be populated when creating a worker pool since it is + # provided in the `poolId` field. + # @param [Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest] google_devtools_remotebuildexecution_admin_v1alpha_update_worker_pool_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def patch_project_instance_workerpool(name, google_devtools_remotebuildexecution_admin_v1alpha_update_worker_pool_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:patch, 'v1alpha/{+name}', options) + command.request_representation = Google::Apis::RemotebuildexecutionV1alpha::GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest::Representation + command.request_object = google_devtools_remotebuildexecution_admin_v1alpha_update_worker_pool_request_object + command.response_representation = Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # 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. + # @param [String] name + # The name of the operation resource. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_operation(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1alpha/{+name}', options) + command.response_representation = Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation::Representation + command.response_class = Google::Apis::RemotebuildexecutionV1alpha::GoogleLongrunningOperation + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + protected + + def apply_command_defaults(command) + command.query['key'] = key unless key.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + end + end + end + end +end diff --git a/generated/google/apis/remotebuildexecution_v2.rb b/generated/google/apis/remotebuildexecution_v2.rb new file mode 100644 index 000000000..60387f42b --- /dev/null +++ b/generated/google/apis/remotebuildexecution_v2.rb @@ -0,0 +1,34 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/remotebuildexecution_v2/service.rb' +require 'google/apis/remotebuildexecution_v2/classes.rb' +require 'google/apis/remotebuildexecution_v2/representations.rb' + +module Google + module Apis + # Remote Build Execution API + # + # Supplies a Remote Execution API service for tools such as bazel. + # + # @see https://cloud.google.com/remote-build-execution/docs/ + module RemotebuildexecutionV2 + VERSION = 'V2' + REVISION = '20190103' + + # View and manage your data across Google Cloud Platform services + AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' + end + end +end diff --git a/generated/google/apis/remotebuildexecution_v2/classes.rb b/generated/google/apis/remotebuildexecution_v2/classes.rb new file mode 100644 index 000000000..36a75bb4f --- /dev/null +++ b/generated/google/apis/remotebuildexecution_v2/classes.rb @@ -0,0 +1,4460 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module RemotebuildexecutionV2 + + # An `Action` captures all the information about an execution which is required + # to reproduce it. + # `Action`s are the core component of the [Execution] service. A single + # `Action` represents a repeatable action that can be performed by the + # execution service. `Action`s can be succinctly identified by the digest of + # their wire format encoding and, once an `Action` has been executed, will be + # cached in the action cache. Future requests can then use the cached result + # rather than needing to run afresh. + # When a server completes execution of an + # Action, it MAY choose to + # cache the result in + # the ActionCache unless + # `do_not_cache` is `true`. Clients SHOULD expect the server to do so. By + # default, future calls to + # Execute the same + # `Action` will also serve their results from the cache. Clients must take care + # to understand the caching behaviour. Ideally, all `Action`s will be + # reproducible so that serving a result from cache is always desirable and + # correct. + class BuildBazelRemoteExecutionV2Action + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `commandDigest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :command_digest + + # If true, then the `Action`'s result cannot be cached. + # Corresponds to the JSON property `doNotCache` + # @return [Boolean] + attr_accessor :do_not_cache + alias_method :do_not_cache?, :do_not_cache + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `inputRootDigest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :input_root_digest + + # A timeout after which the execution should be killed. If the timeout is + # absent, then the client is specifying that the execution should continue + # as long as the server will let it. The server SHOULD impose a timeout if + # the client does not specify one, however, if the client does specify a + # timeout that is longer than the server's maximum timeout, the server MUST + # reject the request. + # The timeout is a part of the + # Action message, and + # therefore two `Actions` with different timeouts are different, even if they + # are otherwise identical. This is because, if they were not, running an + # `Action` with a lower timeout than is required might result in a cache hit + # from an execution run with a longer timeout, hiding the fact that the + # timeout is too short. By encoding it directly in the `Action`, a lower + # timeout will result in a cache miss and the execution timeout will fail + # immediately, rather than whenever the cache entry gets evicted. + # Corresponds to the JSON property `timeout` + # @return [String] + attr_accessor :timeout + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @command_digest = args[:command_digest] if args.key?(:command_digest) + @do_not_cache = args[:do_not_cache] if args.key?(:do_not_cache) + @input_root_digest = args[:input_root_digest] if args.key?(:input_root_digest) + @timeout = args[:timeout] if args.key?(:timeout) + end + end + + # Describes the server/instance capabilities for updating the action cache. + class BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities + include Google::Apis::Core::Hashable + + # + # Corresponds to the JSON property `updateEnabled` + # @return [Boolean] + attr_accessor :update_enabled + alias_method :update_enabled?, :update_enabled + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @update_enabled = args[:update_enabled] if args.key?(:update_enabled) + end + end + + # An ActionResult represents the result of an + # Action being run. + class BuildBazelRemoteExecutionV2ActionResult + include Google::Apis::Core::Hashable + + # ExecutedActionMetadata contains details about a completed execution. + # Corresponds to the JSON property `executionMetadata` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ExecutedActionMetadata] + attr_accessor :execution_metadata + + # The exit code of the command. + # Corresponds to the JSON property `exitCode` + # @return [Fixnum] + attr_accessor :exit_code + + # The output directories of the action. For each output directory requested + # in the `output_directories` field of the Action, if the corresponding + # directory existed after the action completed, a single entry will be + # present in the output list, which will contain the digest of a + # Tree message containing the + # directory tree, and the path equal exactly to the corresponding Action + # output_directories member. + # As an example, suppose the Action had an output directory `a/b/dir` and the + # execution produced the following contents in `a/b/dir`: a file named `bar` + # and a directory named `foo` with an executable file named `baz`. Then, + # output_directory will contain (hashes shortened for readability): + # ```json + # // OutputDirectory proto: + # ` + # path: "a/b/dir" + # tree_digest: ` + # hash: "4a73bc9d03...", + # size: 55 + # ` + # ` + # // Tree proto with hash "4a73bc9d03..." and size 55: + # ` + # root: ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # children : ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ` + # ``` + # Corresponds to the JSON property `outputDirectories` + # @return [Array] + attr_accessor :output_directories + + # The output directories of the action that are symbolic links to other + # directories. Those may be links to other output directories, or input + # directories, or even absolute paths outside of the working directory, + # if the server supports + # SymlinkAbsolutePathStrategy.ALLOWED. + # For each output directory requested in the `output_directories` field of + # the Action, if the directory file existed after + # the action completed, a single entry will be present either in this field, + # or in the `output_directories` field, if the directory was not a symbolic link. + # If the action does not produce the requested output, or produces a + # file where a directory is expected or vice versa, then that output + # will be omitted from the list. The server is free to arrange the output + # list as desired; clients MUST NOT assume that the output list is sorted. + # Corresponds to the JSON property `outputDirectorySymlinks` + # @return [Array] + attr_accessor :output_directory_symlinks + + # The output files of the action that are symbolic links to other files. Those + # may be links to other output files, or input files, or even absolute paths + # outside of the working directory, if the server supports + # SymlinkAbsolutePathStrategy.ALLOWED. + # For each output file requested in the `output_files` field of the Action, + # if the corresponding file existed after + # the action completed, a single entry will be present either in this field, + # or in the `output_files` field, if the file was not a symbolic link. + # If the action does not produce the requested output, or produces a + # directory where a regular file is expected or vice versa, then that output + # will be omitted from the list. The server is free to arrange the output + # list as desired; clients MUST NOT assume that the output list is sorted. + # Corresponds to the JSON property `outputFileSymlinks` + # @return [Array] + attr_accessor :output_file_symlinks + + # The output files of the action. For each output file requested in the + # `output_files` field of the Action, if the corresponding file existed after + # the action completed, a single entry will be present either in this field, + # or in the output_file_symlinks field, if the file was a symbolic link to + # another file. + # If the action does not produce the requested output, or produces a + # directory where a regular file is expected or vice versa, then that output + # will be omitted from the list. The server is free to arrange the output + # list as desired; clients MUST NOT assume that the output list is sorted. + # Corresponds to the JSON property `outputFiles` + # @return [Array] + attr_accessor :output_files + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `stderrDigest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :stderr_digest + + # The standard error buffer of the action. The server will determine, based + # on the size of the buffer, whether to return it in raw form or to return + # a digest in `stderr_digest` that points to the buffer. If neither is set, + # then the buffer is empty. The client SHOULD NOT assume it will get one of + # the raw buffer or a digest on any given request and should be prepared to + # handle either. + # Corresponds to the JSON property `stderrRaw` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :stderr_raw + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `stdoutDigest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :stdout_digest + + # The standard output buffer of the action. The server will determine, based + # on the size of the buffer, whether to return it in raw form or to return + # a digest in `stdout_digest` that points to the buffer. If neither is set, + # then the buffer is empty. The client SHOULD NOT assume it will get one of + # the raw buffer or a digest on any given request and should be prepared to + # handle either. + # Corresponds to the JSON property `stdoutRaw` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :stdout_raw + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @execution_metadata = args[:execution_metadata] if args.key?(:execution_metadata) + @exit_code = args[:exit_code] if args.key?(:exit_code) + @output_directories = args[:output_directories] if args.key?(:output_directories) + @output_directory_symlinks = args[:output_directory_symlinks] if args.key?(:output_directory_symlinks) + @output_file_symlinks = args[:output_file_symlinks] if args.key?(:output_file_symlinks) + @output_files = args[:output_files] if args.key?(:output_files) + @stderr_digest = args[:stderr_digest] if args.key?(:stderr_digest) + @stderr_raw = args[:stderr_raw] if args.key?(:stderr_raw) + @stdout_digest = args[:stdout_digest] if args.key?(:stdout_digest) + @stdout_raw = args[:stdout_raw] if args.key?(:stdout_raw) + end + end + + # A request message for + # ContentAddressableStorage.BatchReadBlobs. + class BuildBazelRemoteExecutionV2BatchReadBlobsRequest + include Google::Apis::Core::Hashable + + # The individual blob digests. + # Corresponds to the JSON property `digests` + # @return [Array] + attr_accessor :digests + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digests = args[:digests] if args.key?(:digests) + end + end + + # A response message for + # ContentAddressableStorage.BatchReadBlobs. + class BuildBazelRemoteExecutionV2BatchReadBlobsResponse + include Google::Apis::Core::Hashable + + # The responses to the requests. + # Corresponds to the JSON property `responses` + # @return [Array] + attr_accessor :responses + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @responses = args[:responses] if args.key?(:responses) + end + end + + # A response corresponding to a single blob that the client tried to upload. + class BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse + include Google::Apis::Core::Hashable + + # The raw binary data. + # Corresponds to the JSON property `data` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :data + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `status` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus] + attr_accessor :status + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @data = args[:data] if args.key?(:data) + @digest = args[:digest] if args.key?(:digest) + @status = args[:status] if args.key?(:status) + end + end + + # A request message for + # ContentAddressableStorage.BatchUpdateBlobs. + class BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest + include Google::Apis::Core::Hashable + + # The individual upload requests. + # Corresponds to the JSON property `requests` + # @return [Array] + attr_accessor :requests + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @requests = args[:requests] if args.key?(:requests) + end + end + + # A request corresponding to a single blob that the client wants to upload. + class BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest + include Google::Apis::Core::Hashable + + # The raw binary data. + # Corresponds to the JSON property `data` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :data + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @data = args[:data] if args.key?(:data) + @digest = args[:digest] if args.key?(:digest) + end + end + + # A response message for + # ContentAddressableStorage.BatchUpdateBlobs. + class BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse + include Google::Apis::Core::Hashable + + # The responses to the requests. + # Corresponds to the JSON property `responses` + # @return [Array] + attr_accessor :responses + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @responses = args[:responses] if args.key?(:responses) + end + end + + # A response corresponding to a single blob that the client tried to upload. + class BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `status` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus] + attr_accessor :status + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @status = args[:status] if args.key?(:status) + end + end + + # Capabilities of the remote cache system. + class BuildBazelRemoteExecutionV2CacheCapabilities + include Google::Apis::Core::Hashable + + # Describes the server/instance capabilities for updating the action cache. + # Corresponds to the JSON property `actionCacheUpdateCapabilities` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities] + attr_accessor :action_cache_update_capabilities + + # Allowed values for priority in + # ResultsCachePolicy + # Used for querying both cache and execution valid priority ranges. + # Corresponds to the JSON property `cachePriorityCapabilities` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2PriorityCapabilities] + attr_accessor :cache_priority_capabilities + + # All the digest functions supported by the remote cache. + # Remote cache may support multiple digest functions simultaneously. + # Corresponds to the JSON property `digestFunction` + # @return [Array] + attr_accessor :digest_function + + # Maximum total size of blobs to be uploaded/downloaded using + # batch methods. A value of 0 means no limit is set, although + # in practice there will always be a message size limitation + # of the protocol in use, e.g. GRPC. + # Corresponds to the JSON property `maxBatchTotalSizeBytes` + # @return [Fixnum] + attr_accessor :max_batch_total_size_bytes + + # Whether absolute symlink targets are supported. + # Corresponds to the JSON property `symlinkAbsolutePathStrategy` + # @return [String] + attr_accessor :symlink_absolute_path_strategy + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_cache_update_capabilities = args[:action_cache_update_capabilities] if args.key?(:action_cache_update_capabilities) + @cache_priority_capabilities = args[:cache_priority_capabilities] if args.key?(:cache_priority_capabilities) + @digest_function = args[:digest_function] if args.key?(:digest_function) + @max_batch_total_size_bytes = args[:max_batch_total_size_bytes] if args.key?(:max_batch_total_size_bytes) + @symlink_absolute_path_strategy = args[:symlink_absolute_path_strategy] if args.key?(:symlink_absolute_path_strategy) + end + end + + # A `Command` is the actual command executed by a worker running an + # Action and specifications of its + # environment. + # Except as otherwise required, the environment (such as which system + # libraries or binaries are available, and what filesystems are mounted where) + # is defined by and specific to the implementation of the remote execution API. + class BuildBazelRemoteExecutionV2Command + include Google::Apis::Core::Hashable + + # The arguments to the command. The first argument must be the path to the + # executable, which must be either a relative path, in which case it is + # evaluated with respect to the input root, or an absolute path. + # Corresponds to the JSON property `arguments` + # @return [Array] + attr_accessor :arguments + + # The environment variables to set when running the program. The worker may + # provide its own default environment variables; these defaults can be + # overridden using this field. Additional variables can also be specified. + # In order to ensure that equivalent `Command`s always hash to the same + # value, the environment variables MUST be lexicographically sorted by name. + # Sorting of strings is done by code point, equivalently, by the UTF-8 bytes. + # Corresponds to the JSON property `environmentVariables` + # @return [Array] + attr_accessor :environment_variables + + # A list of the output directories that the client expects to retrieve from + # the action. Only the contents of the indicated directories (recursively + # including the contents of their subdirectories) will be + # returned, as well as files listed in `output_files`. Other files that may + # be created during command execution are discarded. + # The paths are relative to the working directory of the action execution. + # The paths are specified using a single forward slash (`/`) as a path + # separator, even if the execution platform natively uses a different + # separator. The path MUST NOT include a trailing slash, nor a leading slash, + # being a relative path. The special value of empty string is allowed, + # although not recommended, and can be used to capture the entire working + # directory tree, including inputs. + # In order to ensure consistent hashing of the same Action, the output paths + # MUST be sorted lexicographically by code point (or, equivalently, by UTF-8 + # bytes). + # An output directory cannot be duplicated, be a parent of another output + # directory, be a parent of a listed output file, or have the same path as + # any of the listed output files. + # Corresponds to the JSON property `outputDirectories` + # @return [Array] + attr_accessor :output_directories + + # A list of the output files that the client expects to retrieve from the + # action. Only the listed files, as well as directories listed in + # `output_directories`, will be returned to the client as output. + # Other files that may be created during command execution are discarded. + # The paths are relative to the working directory of the action execution. + # The paths are specified using a single forward slash (`/`) as a path + # separator, even if the execution platform natively uses a different + # separator. The path MUST NOT include a trailing slash, nor a leading slash, + # being a relative path. + # In order to ensure consistent hashing of the same Action, the output paths + # MUST be sorted lexicographically by code point (or, equivalently, by UTF-8 + # bytes). + # An output file cannot be duplicated, be a parent of another output file, be + # a child of a listed output directory, or have the same path as any of the + # listed output directories. + # Corresponds to the JSON property `outputFiles` + # @return [Array] + attr_accessor :output_files + + # A `Platform` is a set of requirements, such as hardware, operating system, or + # compiler toolchain, for an + # Action's execution + # environment. A `Platform` is represented as a series of key-value pairs + # representing the properties that are required of the platform. + # Corresponds to the JSON property `platform` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Platform] + attr_accessor :platform + + # The working directory, relative to the input root, for the command to run + # in. It must be a directory which exists in the input tree. If it is left + # empty, then the action is run in the input root. + # Corresponds to the JSON property `workingDirectory` + # @return [String] + attr_accessor :working_directory + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arguments = args[:arguments] if args.key?(:arguments) + @environment_variables = args[:environment_variables] if args.key?(:environment_variables) + @output_directories = args[:output_directories] if args.key?(:output_directories) + @output_files = args[:output_files] if args.key?(:output_files) + @platform = args[:platform] if args.key?(:platform) + @working_directory = args[:working_directory] if args.key?(:working_directory) + end + end + + # An `EnvironmentVariable` is one variable to set in the running program's + # environment. + class BuildBazelRemoteExecutionV2CommandEnvironmentVariable + include Google::Apis::Core::Hashable + + # The variable name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The variable value. + # Corresponds to the JSON property `value` + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + class BuildBazelRemoteExecutionV2Digest + include Google::Apis::Core::Hashable + + # The hash. In the case of SHA-256, it will always be a lowercase hex string + # exactly 64 characters long. + # Corresponds to the JSON property `hash` + # @return [String] + attr_accessor :hash_prop + + # The size of the blob, in bytes. + # Corresponds to the JSON property `sizeBytes` + # @return [Fixnum] + attr_accessor :size_bytes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @hash_prop = args[:hash_prop] if args.key?(:hash_prop) + @size_bytes = args[:size_bytes] if args.key?(:size_bytes) + end + end + + # A `Directory` represents a directory node in a file tree, containing zero or + # more children FileNodes, + # DirectoryNodes and + # SymlinkNodes. + # Each `Node` contains its name in the directory, either the digest of its + # content (either a file blob or a `Directory` proto) or a symlink target, as + # well as possibly some metadata about the file or directory. + # In order to ensure that two equivalent directory trees hash to the same + # value, the following restrictions MUST be obeyed when constructing a + # a `Directory`: + # - Every child in the directory must have a path of exactly one segment. + # Multiple levels of directory hierarchy may not be collapsed. + # - Each child in the directory must have a unique path segment (file name). + # - The files, directories and symlinks in the directory must each be sorted + # in lexicographical order by path. The path strings must be sorted by code + # point, equivalently, by UTF-8 bytes. + # A `Directory` that obeys the restrictions is said to be in canonical form. + # As an example, the following could be used for a file named `bar` and a + # directory named `foo` with an executable file named `baz` (hashes shortened + # for readability): + # ```json + # // (Directory proto) + # ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # ` + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ``` + class BuildBazelRemoteExecutionV2Directory + include Google::Apis::Core::Hashable + + # The subdirectories in the directory. + # Corresponds to the JSON property `directories` + # @return [Array] + attr_accessor :directories + + # The files in the directory. + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + # The symlinks in the directory. + # Corresponds to the JSON property `symlinks` + # @return [Array] + attr_accessor :symlinks + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @directories = args[:directories] if args.key?(:directories) + @files = args[:files] if args.key?(:files) + @symlinks = args[:symlinks] if args.key?(:symlinks) + end + end + + # A `DirectoryNode` represents a child of a + # Directory which is itself + # a `Directory` and its associated metadata. + class BuildBazelRemoteExecutionV2DirectoryNode + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # The name of the directory. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @name = args[:name] if args.key?(:name) + end + end + + # Metadata about an ongoing + # execution, which + # will be contained in the metadata + # field of the + # Operation. + class BuildBazelRemoteExecutionV2ExecuteOperationMetadata + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `actionDigest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :action_digest + + # + # Corresponds to the JSON property `stage` + # @return [String] + attr_accessor :stage + + # If set, the client can use this name with + # ByteStream.Read to stream the + # standard error. + # Corresponds to the JSON property `stderrStreamName` + # @return [String] + attr_accessor :stderr_stream_name + + # If set, the client can use this name with + # ByteStream.Read to stream the + # standard output. + # Corresponds to the JSON property `stdoutStreamName` + # @return [String] + attr_accessor :stdout_stream_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_digest = args[:action_digest] if args.key?(:action_digest) + @stage = args[:stage] if args.key?(:stage) + @stderr_stream_name = args[:stderr_stream_name] if args.key?(:stderr_stream_name) + @stdout_stream_name = args[:stdout_stream_name] if args.key?(:stdout_stream_name) + end + end + + # A request message for + # Execution.Execute. + class BuildBazelRemoteExecutionV2ExecuteRequest + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `actionDigest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :action_digest + + # An `ExecutionPolicy` can be used to control the scheduling of the action. + # Corresponds to the JSON property `executionPolicy` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ExecutionPolicy] + attr_accessor :execution_policy + + # A `ResultsCachePolicy` is used for fine-grained control over how action + # outputs are stored in the CAS and Action Cache. + # Corresponds to the JSON property `resultsCachePolicy` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ResultsCachePolicy] + attr_accessor :results_cache_policy + + # If true, the action will be executed anew even if its result was already + # present in the cache. If false, the result may be served from the + # ActionCache. + # Corresponds to the JSON property `skipCacheLookup` + # @return [Boolean] + attr_accessor :skip_cache_lookup + alias_method :skip_cache_lookup?, :skip_cache_lookup + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_digest = args[:action_digest] if args.key?(:action_digest) + @execution_policy = args[:execution_policy] if args.key?(:execution_policy) + @results_cache_policy = args[:results_cache_policy] if args.key?(:results_cache_policy) + @skip_cache_lookup = args[:skip_cache_lookup] if args.key?(:skip_cache_lookup) + end + end + + # The response message for + # Execution.Execute, + # which will be contained in the response + # field of the + # Operation. + class BuildBazelRemoteExecutionV2ExecuteResponse + include Google::Apis::Core::Hashable + + # True if the result was served from cache, false if it was executed. + # Corresponds to the JSON property `cachedResult` + # @return [Boolean] + attr_accessor :cached_result + alias_method :cached_result?, :cached_result + + # An ActionResult represents the result of an + # Action being run. + # Corresponds to the JSON property `result` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionResult] + attr_accessor :result + + # An optional list of additional log outputs the server wishes to provide. A + # server can use this to return execution-specific logs however it wishes. + # This is intended primarily to make it easier for users to debug issues that + # may be outside of the actual job execution, such as by identifying the + # worker executing the action or by providing logs from the worker's setup + # phase. The keys SHOULD be human readable so that a client can display them + # to a user. + # Corresponds to the JSON property `serverLogs` + # @return [Hash] + attr_accessor :server_logs + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `status` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus] + attr_accessor :status + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cached_result = args[:cached_result] if args.key?(:cached_result) + @result = args[:result] if args.key?(:result) + @server_logs = args[:server_logs] if args.key?(:server_logs) + @status = args[:status] if args.key?(:status) + end + end + + # ExecutedActionMetadata contains details about a completed execution. + class BuildBazelRemoteExecutionV2ExecutedActionMetadata + include Google::Apis::Core::Hashable + + # When the worker completed executing the action command. + # Corresponds to the JSON property `executionCompletedTimestamp` + # @return [String] + attr_accessor :execution_completed_timestamp + + # When the worker started executing the action command. + # Corresponds to the JSON property `executionStartTimestamp` + # @return [String] + attr_accessor :execution_start_timestamp + + # When the worker finished fetching action inputs. + # Corresponds to the JSON property `inputFetchCompletedTimestamp` + # @return [String] + attr_accessor :input_fetch_completed_timestamp + + # When the worker started fetching action inputs. + # Corresponds to the JSON property `inputFetchStartTimestamp` + # @return [String] + attr_accessor :input_fetch_start_timestamp + + # When the worker finished uploading action outputs. + # Corresponds to the JSON property `outputUploadCompletedTimestamp` + # @return [String] + attr_accessor :output_upload_completed_timestamp + + # When the worker started uploading action outputs. + # Corresponds to the JSON property `outputUploadStartTimestamp` + # @return [String] + attr_accessor :output_upload_start_timestamp + + # When was the action added to the queue. + # Corresponds to the JSON property `queuedTimestamp` + # @return [String] + attr_accessor :queued_timestamp + + # The name of the worker which ran the execution. + # Corresponds to the JSON property `worker` + # @return [String] + attr_accessor :worker + + # When the worker completed the action, including all stages. + # Corresponds to the JSON property `workerCompletedTimestamp` + # @return [String] + attr_accessor :worker_completed_timestamp + + # When the worker received the action. + # Corresponds to the JSON property `workerStartTimestamp` + # @return [String] + attr_accessor :worker_start_timestamp + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @execution_completed_timestamp = args[:execution_completed_timestamp] if args.key?(:execution_completed_timestamp) + @execution_start_timestamp = args[:execution_start_timestamp] if args.key?(:execution_start_timestamp) + @input_fetch_completed_timestamp = args[:input_fetch_completed_timestamp] if args.key?(:input_fetch_completed_timestamp) + @input_fetch_start_timestamp = args[:input_fetch_start_timestamp] if args.key?(:input_fetch_start_timestamp) + @output_upload_completed_timestamp = args[:output_upload_completed_timestamp] if args.key?(:output_upload_completed_timestamp) + @output_upload_start_timestamp = args[:output_upload_start_timestamp] if args.key?(:output_upload_start_timestamp) + @queued_timestamp = args[:queued_timestamp] if args.key?(:queued_timestamp) + @worker = args[:worker] if args.key?(:worker) + @worker_completed_timestamp = args[:worker_completed_timestamp] if args.key?(:worker_completed_timestamp) + @worker_start_timestamp = args[:worker_start_timestamp] if args.key?(:worker_start_timestamp) + end + end + + # Capabilities of the remote execution system. + class BuildBazelRemoteExecutionV2ExecutionCapabilities + include Google::Apis::Core::Hashable + + # Remote execution may only support a single digest function. + # Corresponds to the JSON property `digestFunction` + # @return [String] + attr_accessor :digest_function + + # Whether remote execution is enabled for the particular server/instance. + # Corresponds to the JSON property `execEnabled` + # @return [Boolean] + attr_accessor :exec_enabled + alias_method :exec_enabled?, :exec_enabled + + # Allowed values for priority in + # ResultsCachePolicy + # Used for querying both cache and execution valid priority ranges. + # Corresponds to the JSON property `executionPriorityCapabilities` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2PriorityCapabilities] + attr_accessor :execution_priority_capabilities + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest_function = args[:digest_function] if args.key?(:digest_function) + @exec_enabled = args[:exec_enabled] if args.key?(:exec_enabled) + @execution_priority_capabilities = args[:execution_priority_capabilities] if args.key?(:execution_priority_capabilities) + end + end + + # An `ExecutionPolicy` can be used to control the scheduling of the action. + class BuildBazelRemoteExecutionV2ExecutionPolicy + include Google::Apis::Core::Hashable + + # The priority (relative importance) of this action. Generally, a lower value + # means that the action should be run sooner than actions having a greater + # priority value, but the interpretation of a given value is server- + # dependent. A priority of 0 means the *default* priority. Priorities may be + # positive or negative, and such actions should run later or sooner than + # actions having the default priority, respectively. The particular semantics + # of this field is up to the server. In particular, every server will have + # their own supported range of priorities, and will decide how these map into + # scheduling policy. + # Corresponds to the JSON property `priority` + # @return [Fixnum] + attr_accessor :priority + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @priority = args[:priority] if args.key?(:priority) + end + end + + # A `FileNode` represents a single file and associated metadata. + class BuildBazelRemoteExecutionV2FileNode + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # True if file is executable, false otherwise. + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The name of the file. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @name = args[:name] if args.key?(:name) + end + end + + # A request message for + # ContentAddressableStorage.FindMissingBlobs. + class BuildBazelRemoteExecutionV2FindMissingBlobsRequest + include Google::Apis::Core::Hashable + + # A list of the blobs to check. + # Corresponds to the JSON property `blobDigests` + # @return [Array] + attr_accessor :blob_digests + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @blob_digests = args[:blob_digests] if args.key?(:blob_digests) + end + end + + # A response message for + # ContentAddressableStorage.FindMissingBlobs. + class BuildBazelRemoteExecutionV2FindMissingBlobsResponse + include Google::Apis::Core::Hashable + + # A list of the blobs requested *not* present in the storage. + # Corresponds to the JSON property `missingBlobDigests` + # @return [Array] + attr_accessor :missing_blob_digests + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @missing_blob_digests = args[:missing_blob_digests] if args.key?(:missing_blob_digests) + end + end + + # A response message for + # ContentAddressableStorage.GetTree. + class BuildBazelRemoteExecutionV2GetTreeResponse + include Google::Apis::Core::Hashable + + # The directories descended from the requested root. + # Corresponds to the JSON property `directories` + # @return [Array] + attr_accessor :directories + + # If present, signifies that there are more results which the client can + # retrieve by passing this as the page_token in a subsequent + # request. + # If empty, signifies that this is the last page of results. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @directories = args[:directories] if args.key?(:directories) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + end + end + + # A `LogFile` is a log stored in the CAS. + class BuildBazelRemoteExecutionV2LogFile + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # This is a hint as to the purpose of the log, and is set to true if the log + # is human-readable text that can be usefully displayed to a user, and false + # otherwise. For instance, if a command-line client wishes to print the + # server logs to the terminal for a failed action, this allows it to avoid + # displaying a binary file. + # Corresponds to the JSON property `humanReadable` + # @return [Boolean] + attr_accessor :human_readable + alias_method :human_readable?, :human_readable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @human_readable = args[:human_readable] if args.key?(:human_readable) + end + end + + # An `OutputDirectory` is the output in an `ActionResult` corresponding to a + # directory's full contents rather than a single file. + class BuildBazelRemoteExecutionV2OutputDirectory + include Google::Apis::Core::Hashable + + # The full path of the directory relative to the working directory. The path + # separator is a forward slash `/`. Since this is a relative path, it MUST + # NOT begin with a leading forward slash. The empty string value is allowed, + # and it denotes the entire working directory. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `treeDigest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :tree_digest + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @path = args[:path] if args.key?(:path) + @tree_digest = args[:tree_digest] if args.key?(:tree_digest) + end + end + + # An `OutputFile` is similar to a + # FileNode, but it is used as an + # output in an `ActionResult`. It allows a full file path rather than + # only a name. + # `OutputFile` is binary-compatible with `FileNode`. + class BuildBazelRemoteExecutionV2OutputFile + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest] + attr_accessor :digest + + # True if file is executable, false otherwise. + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The full path of the file relative to the working directory, including the + # filename. The path separator is a forward slash `/`. Since this is a + # relative path, it MUST NOT begin with a leading forward slash. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @path = args[:path] if args.key?(:path) + end + end + + # An `OutputSymlink` is similar to a + # Symlink, but it is used as an + # output in an `ActionResult`. + # `OutputSymlink` is binary-compatible with `SymlinkNode`. + class BuildBazelRemoteExecutionV2OutputSymlink + include Google::Apis::Core::Hashable + + # The full path of the symlink relative to the working directory, including the + # filename. The path separator is a forward slash `/`. Since this is a + # relative path, it MUST NOT begin with a leading forward slash. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + # The target path of the symlink. The path separator is a forward slash `/`. + # The target path can be relative to the parent directory of the symlink or + # it can be an absolute path starting with `/`. Support for absolute paths + # can be checked using the Capabilities + # API. The canonical form forbids the substrings `/./` and `//` in the target + # path. `..` components are allowed anywhere in the target path. + # Corresponds to the JSON property `target` + # @return [String] + attr_accessor :target + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @path = args[:path] if args.key?(:path) + @target = args[:target] if args.key?(:target) + end + end + + # A `Platform` is a set of requirements, such as hardware, operating system, or + # compiler toolchain, for an + # Action's execution + # environment. A `Platform` is represented as a series of key-value pairs + # representing the properties that are required of the platform. + class BuildBazelRemoteExecutionV2Platform + include Google::Apis::Core::Hashable + + # The properties that make up this platform. In order to ensure that + # equivalent `Platform`s always hash to the same value, the properties MUST + # be lexicographically sorted by name, and then by value. Sorting of strings + # is done by code point, equivalently, by the UTF-8 bytes. + # Corresponds to the JSON property `properties` + # @return [Array] + attr_accessor :properties + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @properties = args[:properties] if args.key?(:properties) + end + end + + # A single property for the environment. The server is responsible for + # specifying the property `name`s that it accepts. If an unknown `name` is + # provided in the requirements for an + # Action, the server SHOULD + # reject the execution request. If permitted by the server, the same `name` + # may occur multiple times. + # The server is also responsible for specifying the interpretation of + # property `value`s. For instance, a property describing how much RAM must be + # available may be interpreted as allowing a worker with 16GB to fulfill a + # request for 8GB, while a property describing the OS environment on which + # the action must be performed may require an exact match with the worker's + # OS. + # The server MAY use the `value` of one or more properties to determine how + # it sets up the execution environment, such as by making specific system + # files available to the worker. + class BuildBazelRemoteExecutionV2PlatformProperty + include Google::Apis::Core::Hashable + + # The property name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The property value. + # Corresponds to the JSON property `value` + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # Allowed values for priority in + # ResultsCachePolicy + # Used for querying both cache and execution valid priority ranges. + class BuildBazelRemoteExecutionV2PriorityCapabilities + include Google::Apis::Core::Hashable + + # + # Corresponds to the JSON property `priorities` + # @return [Array] + attr_accessor :priorities + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @priorities = args[:priorities] if args.key?(:priorities) + end + end + + # Supported range of priorities, including boundaries. + class BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange + include Google::Apis::Core::Hashable + + # + # Corresponds to the JSON property `maxPriority` + # @return [Fixnum] + attr_accessor :max_priority + + # + # Corresponds to the JSON property `minPriority` + # @return [Fixnum] + attr_accessor :min_priority + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @max_priority = args[:max_priority] if args.key?(:max_priority) + @min_priority = args[:min_priority] if args.key?(:min_priority) + end + end + + # An optional Metadata to attach to any RPC request to tell the server about an + # external context of the request. The server may use this for logging or other + # purposes. To use it, the client attaches the header to the call using the + # canonical proto serialization: + # name: build.bazel.remote.execution.v2.requestmetadata-bin + # contents: the base64 encoded binary RequestMetadata message. + class BuildBazelRemoteExecutionV2RequestMetadata + include Google::Apis::Core::Hashable + + # An identifier that ties multiple requests to the same action. + # For example, multiple requests to the CAS, Action Cache, and Execution + # API are used in order to compile foo.cc. + # Corresponds to the JSON property `actionId` + # @return [String] + attr_accessor :action_id + + # An identifier to tie multiple tool invocations together. For example, + # runs of foo_test, bar_test and baz_test on a post-submit of a given patch. + # Corresponds to the JSON property `correlatedInvocationsId` + # @return [String] + attr_accessor :correlated_invocations_id + + # Details for the tool used to call the API. + # Corresponds to the JSON property `toolDetails` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ToolDetails] + attr_accessor :tool_details + + # An identifier that ties multiple actions together to a final result. + # For example, multiple actions are required to build and run foo_test. + # Corresponds to the JSON property `toolInvocationId` + # @return [String] + attr_accessor :tool_invocation_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_id = args[:action_id] if args.key?(:action_id) + @correlated_invocations_id = args[:correlated_invocations_id] if args.key?(:correlated_invocations_id) + @tool_details = args[:tool_details] if args.key?(:tool_details) + @tool_invocation_id = args[:tool_invocation_id] if args.key?(:tool_invocation_id) + end + end + + # A `ResultsCachePolicy` is used for fine-grained control over how action + # outputs are stored in the CAS and Action Cache. + class BuildBazelRemoteExecutionV2ResultsCachePolicy + include Google::Apis::Core::Hashable + + # The priority (relative importance) of this content in the overall cache. + # Generally, a lower value means a longer retention time or other advantage, + # but the interpretation of a given value is server-dependent. A priority of + # 0 means a *default* value, decided by the server. + # The particular semantics of this field is up to the server. In particular, + # every server will have their own supported range of priorities, and will + # decide how these map into retention/eviction policy. + # Corresponds to the JSON property `priority` + # @return [Fixnum] + attr_accessor :priority + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @priority = args[:priority] if args.key?(:priority) + end + end + + # A response message for + # Capabilities.GetCapabilities. + class BuildBazelRemoteExecutionV2ServerCapabilities + include Google::Apis::Core::Hashable + + # Capabilities of the remote cache system. + # Corresponds to the JSON property `cacheCapabilities` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2CacheCapabilities] + attr_accessor :cache_capabilities + + # Earliest RE API version supported, including deprecated versions. + # Corresponds to the JSON property `deprecatedApiVersion` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelSemverSemVer] + attr_accessor :deprecated_api_version + + # Capabilities of the remote execution system. + # Corresponds to the JSON property `executionCapabilities` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ExecutionCapabilities] + attr_accessor :execution_capabilities + + # Latest RE API version supported. + # Corresponds to the JSON property `highApiVersion` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelSemverSemVer] + attr_accessor :high_api_version + + # Earliest non-deprecated RE API version supported. + # Corresponds to the JSON property `lowApiVersion` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelSemverSemVer] + attr_accessor :low_api_version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cache_capabilities = args[:cache_capabilities] if args.key?(:cache_capabilities) + @deprecated_api_version = args[:deprecated_api_version] if args.key?(:deprecated_api_version) + @execution_capabilities = args[:execution_capabilities] if args.key?(:execution_capabilities) + @high_api_version = args[:high_api_version] if args.key?(:high_api_version) + @low_api_version = args[:low_api_version] if args.key?(:low_api_version) + end + end + + # A `SymlinkNode` represents a symbolic link. + class BuildBazelRemoteExecutionV2SymlinkNode + include Google::Apis::Core::Hashable + + # The name of the symlink. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The target path of the symlink. The path separator is a forward slash `/`. + # The target path can be relative to the parent directory of the symlink or + # it can be an absolute path starting with `/`. Support for absolute paths + # can be checked using the Capabilities + # API. The canonical form forbids the substrings `/./` and `//` in the target + # path. `..` components are allowed anywhere in the target path. + # Corresponds to the JSON property `target` + # @return [String] + attr_accessor :target + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @target = args[:target] if args.key?(:target) + end + end + + # Details for the tool used to call the API. + class BuildBazelRemoteExecutionV2ToolDetails + include Google::Apis::Core::Hashable + + # Name of the tool, e.g. bazel. + # Corresponds to the JSON property `toolName` + # @return [String] + attr_accessor :tool_name + + # Version of the tool used for the request, e.g. 5.0.3. + # Corresponds to the JSON property `toolVersion` + # @return [String] + attr_accessor :tool_version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @tool_name = args[:tool_name] if args.key?(:tool_name) + @tool_version = args[:tool_version] if args.key?(:tool_version) + end + end + + # A `Tree` contains all the + # Directory protos in a + # single directory Merkle tree, compressed into one message. + class BuildBazelRemoteExecutionV2Tree + include Google::Apis::Core::Hashable + + # All the child directories: the directories referred to by the root and, + # recursively, all its children. In order to reconstruct the directory tree, + # the client must take the digests of each of the child directories and then + # build up a tree starting from the `root`. + # Corresponds to the JSON property `children` + # @return [Array] + attr_accessor :children + + # A `Directory` represents a directory node in a file tree, containing zero or + # more children FileNodes, + # DirectoryNodes and + # SymlinkNodes. + # Each `Node` contains its name in the directory, either the digest of its + # content (either a file blob or a `Directory` proto) or a symlink target, as + # well as possibly some metadata about the file or directory. + # In order to ensure that two equivalent directory trees hash to the same + # value, the following restrictions MUST be obeyed when constructing a + # a `Directory`: + # - Every child in the directory must have a path of exactly one segment. + # Multiple levels of directory hierarchy may not be collapsed. + # - Each child in the directory must have a unique path segment (file name). + # - The files, directories and symlinks in the directory must each be sorted + # in lexicographical order by path. The path strings must be sorted by code + # point, equivalently, by UTF-8 bytes. + # A `Directory` that obeys the restrictions is said to be in canonical form. + # As an example, the following could be used for a file named `bar` and a + # directory named `foo` with an executable file named `baz` (hashes shortened + # for readability): + # ```json + # // (Directory proto) + # ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # ` + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ``` + # Corresponds to the JSON property `root` + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Directory] + attr_accessor :root + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @children = args[:children] if args.key?(:children) + @root = args[:root] if args.key?(:root) + end + end + + # A request message for + # WaitExecution. + class BuildBazelRemoteExecutionV2WaitExecutionRequest + include Google::Apis::Core::Hashable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + end + end + + # + class BuildBazelSemverSemVer + include Google::Apis::Core::Hashable + + # + # Corresponds to the JSON property `major` + # @return [Fixnum] + attr_accessor :major + + # + # Corresponds to the JSON property `minor` + # @return [Fixnum] + attr_accessor :minor + + # + # Corresponds to the JSON property `patch` + # @return [Fixnum] + attr_accessor :patch + + # + # Corresponds to the JSON property `prerelease` + # @return [String] + attr_accessor :prerelease + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @major = args[:major] if args.key?(:major) + @minor = args[:minor] if args.key?(:minor) + @patch = args[:patch] if args.key?(:patch) + @prerelease = args[:prerelease] if args.key?(:prerelease) + end + end + + # CommandDuration contains the various duration metrics tracked when a bot + # performs a command. + class GoogleDevtoolsRemotebuildbotCommandDurations + include Google::Apis::Core::Hashable + + # The time spent preparing the command to be run in a Docker container + # (includes pulling the Docker image, if necessary). + # Corresponds to the JSON property `dockerPrep` + # @return [String] + attr_accessor :docker_prep + + # The time spent downloading the input files and constructing the working + # directory. + # Corresponds to the JSON property `download` + # @return [String] + attr_accessor :download + + # The time spent executing the command (i.e., doing useful work). + # Corresponds to the JSON property `execution` + # @return [String] + attr_accessor :execution + + # The timestamp when preparation is done and bot starts downloading files. + # Corresponds to the JSON property `isoPrepDone` + # @return [String] + attr_accessor :iso_prep_done + + # The time spent completing the command, in total. + # Corresponds to the JSON property `overall` + # @return [String] + attr_accessor :overall + + # The time spent uploading the stdout logs. + # Corresponds to the JSON property `stdout` + # @return [String] + attr_accessor :stdout + + # The time spent uploading the output files. + # Corresponds to the JSON property `upload` + # @return [String] + attr_accessor :upload + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @docker_prep = args[:docker_prep] if args.key?(:docker_prep) + @download = args[:download] if args.key?(:download) + @execution = args[:execution] if args.key?(:execution) + @iso_prep_done = args[:iso_prep_done] if args.key?(:iso_prep_done) + @overall = args[:overall] if args.key?(:overall) + @stdout = args[:stdout] if args.key?(:stdout) + @upload = args[:upload] if args.key?(:upload) + end + end + + # CommandEvents contains counters for the number of warnings and errors + # that occurred during the execution of a command. + class GoogleDevtoolsRemotebuildbotCommandEvents + include Google::Apis::Core::Hashable + + # Indicates whether we are using a cached Docker image (true) or had to pull + # the Docker image (false) for this command. + # Corresponds to the JSON property `dockerCacheHit` + # @return [Boolean] + attr_accessor :docker_cache_hit + alias_method :docker_cache_hit?, :docker_cache_hit + + # The number of errors reported. + # Corresponds to the JSON property `numErrors` + # @return [Fixnum] + attr_accessor :num_errors + + # The number of warnings reported. + # Corresponds to the JSON property `numWarnings` + # @return [Fixnum] + attr_accessor :num_warnings + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @docker_cache_hit = args[:docker_cache_hit] if args.key?(:docker_cache_hit) + @num_errors = args[:num_errors] if args.key?(:num_errors) + @num_warnings = args[:num_warnings] if args.key?(:num_warnings) + end + end + + # The request used for `CreateInstance`. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest + include Google::Apis::Core::Hashable + + # Instance conceptually encapsulates all Remote Build Execution resources + # for remote builds. + # An instance consists of storage and compute resources (for example, + # `ContentAddressableStorage`, `ActionCache`, `WorkerPools`) used for + # running remote builds. + # All Remote Build Execution API calls are scoped to an instance. + # Corresponds to the JSON property `instance` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance] + attr_accessor :instance + + # ID of the created instance. + # A valid `instance_id` must: + # be 6-50 characters long, + # contains only lowercase letters, digits, hyphens and underscores, + # start with a lowercase letter, and + # end with a lowercase letter or a digit. + # Corresponds to the JSON property `instanceId` + # @return [String] + attr_accessor :instance_id + + # Resource name of the project containing the instance. + # Format: `projects/[PROJECT_ID]`. + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @instance = args[:instance] if args.key?(:instance) + @instance_id = args[:instance_id] if args.key?(:instance_id) + @parent = args[:parent] if args.key?(:parent) + end + end + + # The request used for `CreateWorkerPool`. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest + include Google::Apis::Core::Hashable + + # Resource name of the instance in which to create the new worker pool. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + # ID of the created worker pool. + # A valid pool ID must: + # be 6-50 characters long, + # contain only lowercase letters, digits, hyphens and underscores, + # start with a lowercase letter, and + # end with a lowercase letter or a digit. + # Corresponds to the JSON property `poolId` + # @return [String] + attr_accessor :pool_id + + # A worker pool resource in the Remote Build Execution API. + # Corresponds to the JSON property `workerPool` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool] + attr_accessor :worker_pool + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @parent = args[:parent] if args.key?(:parent) + @pool_id = args[:pool_id] if args.key?(:pool_id) + @worker_pool = args[:worker_pool] if args.key?(:worker_pool) + end + end + + # The request used for `DeleteInstance`. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest + include Google::Apis::Core::Hashable + + # Name of the instance to delete. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # The request used for DeleteWorkerPool. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest + include Google::Apis::Core::Hashable + + # Name of the worker pool to delete. + # Format: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # The request used for `GetInstance`. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest + include Google::Apis::Core::Hashable + + # Name of the instance to retrieve. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # The request used for GetWorkerPool. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest + include Google::Apis::Core::Hashable + + # Name of the worker pool to retrieve. + # Format: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # Instance conceptually encapsulates all Remote Build Execution resources + # for remote builds. + # An instance consists of storage and compute resources (for example, + # `ContentAddressableStorage`, `ActionCache`, `WorkerPools`) used for + # running remote builds. + # All Remote Build Execution API calls are scoped to an instance. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance + include Google::Apis::Core::Hashable + + # The location is a GCP region. Currently only `us-central1` is supported. + # Corresponds to the JSON property `location` + # @return [String] + attr_accessor :location + + # Output only. Instance resource name formatted as: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Name should not be populated when creating an instance since it is provided + # in the `instance_id` field. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Output only. State of the instance. + # Corresponds to the JSON property `state` + # @return [String] + attr_accessor :state + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @location = args[:location] if args.key?(:location) + @name = args[:name] if args.key?(:name) + @state = args[:state] if args.key?(:state) + end + end + + # + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest + include Google::Apis::Core::Hashable + + # Resource name of the project. + # Format: `projects/[PROJECT_ID]`. + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @parent = args[:parent] if args.key?(:parent) + end + end + + # + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse + include Google::Apis::Core::Hashable + + # The list of instances in a given project. + # Corresponds to the JSON property `instances` + # @return [Array] + attr_accessor :instances + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @instances = args[:instances] if args.key?(:instances) + end + end + + # + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest + include Google::Apis::Core::Hashable + + # Resource name of the instance. + # Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. + # Corresponds to the JSON property `parent` + # @return [String] + attr_accessor :parent + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @parent = args[:parent] if args.key?(:parent) + end + end + + # + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse + include Google::Apis::Core::Hashable + + # The list of worker pools in a given instance. + # Corresponds to the JSON property `workerPools` + # @return [Array] + attr_accessor :worker_pools + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @worker_pools = args[:worker_pools] if args.key?(:worker_pools) + end + end + + # The request used for UpdateWorkerPool. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest + include Google::Apis::Core::Hashable + + # The update mask applies to worker_pool. For the `FieldMask` definition, + # see https://developers.google.com/protocol-buffers/docs/reference/google. + # protobuf#fieldmask + # If an empty update_mask is provided, only the non-default valued field in + # the worker pool field will be updated. Note that in order to update a field + # to the default value (zero, false, empty string) an explicit update_mask + # must be provided. + # Corresponds to the JSON property `updateMask` + # @return [String] + attr_accessor :update_mask + + # A worker pool resource in the Remote Build Execution API. + # Corresponds to the JSON property `workerPool` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool] + attr_accessor :worker_pool + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @update_mask = args[:update_mask] if args.key?(:update_mask) + @worker_pool = args[:worker_pool] if args.key?(:worker_pool) + end + end + + # Defines the configuration to be used for a creating workers in + # the worker pool. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig + include Google::Apis::Core::Hashable + + # Required. Size of the disk attached to the worker, in GB. + # See https://cloud.google.com/compute/docs/disks/ + # Corresponds to the JSON property `diskSizeGb` + # @return [Fixnum] + attr_accessor :disk_size_gb + + # Required. Disk Type to use for the worker. + # See [Storage options](https://cloud.google.com/compute/docs/disks/# + # introduction). + # Currently only `pd-standard` is supported. + # Corresponds to the JSON property `diskType` + # @return [String] + attr_accessor :disk_type + + # Required. Machine type of the worker, such as n1-standard-2. + # See https://cloud.google.com/compute/docs/machine-types for a list of + # supported machine types. + # Corresponds to the JSON property `machineType` + # @return [String] + attr_accessor :machine_type + + # Minimum CPU platform to use when creating the worker. + # See [CPU Platforms](https://cloud.google.com/compute/docs/cpu-platforms). + # Corresponds to the JSON property `minCpuPlatform` + # @return [String] + attr_accessor :min_cpu_platform + + # Output only. `reserved=true` means the worker is reserved and won't be + # preempted. + # Corresponds to the JSON property `reserved` + # @return [Boolean] + attr_accessor :reserved + alias_method :reserved?, :reserved + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb) + @disk_type = args[:disk_type] if args.key?(:disk_type) + @machine_type = args[:machine_type] if args.key?(:machine_type) + @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform) + @reserved = args[:reserved] if args.key?(:reserved) + end + end + + # A worker pool resource in the Remote Build Execution API. + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool + include Google::Apis::Core::Hashable + + # WorkerPool resource name formatted as: + # `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. + # name should not be populated when creating a worker pool since it is + # provided in the `poolId` field. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Output only. State of the worker pool. + # Corresponds to the JSON property `state` + # @return [String] + attr_accessor :state + + # Defines the configuration to be used for a creating workers in + # the worker pool. + # Corresponds to the JSON property `workerConfig` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig] + attr_accessor :worker_config + + # The desired number of workers in the worker pool. Must be a value between + # 0 and 1000. + # Corresponds to the JSON property `workerCount` + # @return [Fixnum] + attr_accessor :worker_count + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @state = args[:state] if args.key?(:state) + @worker_config = args[:worker_config] if args.key?(:worker_config) + @worker_count = args[:worker_count] if args.key?(:worker_count) + end + end + + # An ActionResult represents the result of an + # Action being run. + class GoogleDevtoolsRemoteexecutionV1testActionResult + include Google::Apis::Core::Hashable + + # The exit code of the command. + # Corresponds to the JSON property `exitCode` + # @return [Fixnum] + attr_accessor :exit_code + + # The output directories of the action. For each output directory requested + # in the `output_directories` field of the Action, if the corresponding + # directory existed after the action completed, a single entry will be + # present in the output list, which will contain the digest of + # a Tree message containing + # the directory tree, and the path equal exactly to the corresponding Action + # output_directories member. + # As an example, suppose the Action had an output directory `a/b/dir` and the + # execution produced the following contents in `a/b/dir`: a file named `bar` + # and a directory named `foo` with an executable file named `baz`. Then, + # output_directory will contain (hashes shortened for readability): + # ```json + # // OutputDirectory proto: + # ` + # path: "a/b/dir" + # tree_digest: ` + # hash: "4a73bc9d03...", + # size: 55 + # ` + # ` + # // Tree proto with hash "4a73bc9d03..." and size 55: + # ` + # root: ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # children : ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ` + # ``` + # Corresponds to the JSON property `outputDirectories` + # @return [Array] + attr_accessor :output_directories + + # The output files of the action. For each output file requested in the + # `output_files` field of the Action, if the corresponding file existed after + # the action completed, a single entry will be present in the output list. + # If the action does not produce the requested output, or produces a + # directory where a regular file is expected or vice versa, then that output + # will be omitted from the list. The server is free to arrange the output + # list as desired; clients MUST NOT assume that the output list is sorted. + # Corresponds to the JSON property `outputFiles` + # @return [Array] + attr_accessor :output_files + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `stderrDigest` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :stderr_digest + + # The standard error buffer of the action. The server will determine, based + # on the size of the buffer, whether to return it in raw form or to return + # a digest in `stderr_digest` that points to the buffer. If neither is set, + # then the buffer is empty. The client SHOULD NOT assume it will get one of + # the raw buffer or a digest on any given request and should be prepared to + # handle either. + # Corresponds to the JSON property `stderrRaw` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :stderr_raw + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `stdoutDigest` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :stdout_digest + + # The standard output buffer of the action. The server will determine, based + # on the size of the buffer, whether to return it in raw form or to return + # a digest in `stdout_digest` that points to the buffer. If neither is set, + # then the buffer is empty. The client SHOULD NOT assume it will get one of + # the raw buffer or a digest on any given request and should be prepared to + # handle either. + # Corresponds to the JSON property `stdoutRaw` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :stdout_raw + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @exit_code = args[:exit_code] if args.key?(:exit_code) + @output_directories = args[:output_directories] if args.key?(:output_directories) + @output_files = args[:output_files] if args.key?(:output_files) + @stderr_digest = args[:stderr_digest] if args.key?(:stderr_digest) + @stderr_raw = args[:stderr_raw] if args.key?(:stderr_raw) + @stdout_digest = args[:stdout_digest] if args.key?(:stdout_digest) + @stdout_raw = args[:stdout_raw] if args.key?(:stdout_raw) + end + end + + # A `Command` is the actual command executed by a worker running an + # Action. + # Except as otherwise required, the environment (such as which system + # libraries or binaries are available, and what filesystems are mounted where) + # is defined by and specific to the implementation of the remote execution API. + class GoogleDevtoolsRemoteexecutionV1testCommand + include Google::Apis::Core::Hashable + + # The arguments to the command. The first argument must be the path to the + # executable, which must be either a relative path, in which case it is + # evaluated with respect to the input root, or an absolute path. + # The working directory will always be the input root. + # Corresponds to the JSON property `arguments` + # @return [Array] + attr_accessor :arguments + + # The environment variables to set when running the program. The worker may + # provide its own default environment variables; these defaults can be + # overridden using this field. Additional variables can also be specified. + # In order to ensure that equivalent `Command`s always hash to the same + # value, the environment variables MUST be lexicographically sorted by name. + # Sorting of strings is done by code point, equivalently, by the UTF-8 bytes. + # Corresponds to the JSON property `environmentVariables` + # @return [Array] + attr_accessor :environment_variables + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arguments = args[:arguments] if args.key?(:arguments) + @environment_variables = args[:environment_variables] if args.key?(:environment_variables) + end + end + + # An `EnvironmentVariable` is one variable to set in the running program's + # environment. + class GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable + include Google::Apis::Core::Hashable + + # The variable name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The variable value. + # Corresponds to the JSON property `value` + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + class GoogleDevtoolsRemoteexecutionV1testDigest + include Google::Apis::Core::Hashable + + # The hash. In the case of SHA-256, it will always be a lowercase hex string + # exactly 64 characters long. + # Corresponds to the JSON property `hash` + # @return [String] + attr_accessor :hash_prop + + # The size of the blob, in bytes. + # Corresponds to the JSON property `sizeBytes` + # @return [Fixnum] + attr_accessor :size_bytes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @hash_prop = args[:hash_prop] if args.key?(:hash_prop) + @size_bytes = args[:size_bytes] if args.key?(:size_bytes) + end + end + + # A `Directory` represents a directory node in a file tree, containing zero or + # more children FileNodes + # and DirectoryNodes. + # Each `Node` contains its name in the directory, the digest of its content + # (either a file blob or a `Directory` proto), as well as possibly some + # metadata about the file or directory. + # In order to ensure that two equivalent directory trees hash to the same + # value, the following restrictions MUST be obeyed when constructing a + # a `Directory`: + # - Every child in the directory must have a path of exactly one segment. + # Multiple levels of directory hierarchy may not be collapsed. + # - Each child in the directory must have a unique path segment (file name). + # - The files and directories in the directory must each be sorted in + # lexicographical order by path. The path strings must be sorted by code + # point, equivalently, by UTF-8 bytes. + # A `Directory` that obeys the restrictions is said to be in canonical form. + # As an example, the following could be used for a file named `bar` and a + # directory named `foo` with an executable file named `baz` (hashes shortened + # for readability): + # ```json + # // (Directory proto) + # ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # ` + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ``` + class GoogleDevtoolsRemoteexecutionV1testDirectory + include Google::Apis::Core::Hashable + + # The subdirectories in the directory. + # Corresponds to the JSON property `directories` + # @return [Array] + attr_accessor :directories + + # The files in the directory. + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @directories = args[:directories] if args.key?(:directories) + @files = args[:files] if args.key?(:files) + end + end + + # A `DirectoryNode` represents a child of a + # Directory which is itself + # a `Directory` and its associated metadata. + class GoogleDevtoolsRemoteexecutionV1testDirectoryNode + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # The name of the directory. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @name = args[:name] if args.key?(:name) + end + end + + # Metadata about an ongoing + # execution, which + # will be contained in the metadata + # field of the + # Operation. + class GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `actionDigest` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :action_digest + + # + # Corresponds to the JSON property `stage` + # @return [String] + attr_accessor :stage + + # If set, the client can use this name with + # ByteStream.Read to stream the + # standard error. + # Corresponds to the JSON property `stderrStreamName` + # @return [String] + attr_accessor :stderr_stream_name + + # If set, the client can use this name with + # ByteStream.Read to stream the + # standard output. + # Corresponds to the JSON property `stdoutStreamName` + # @return [String] + attr_accessor :stdout_stream_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_digest = args[:action_digest] if args.key?(:action_digest) + @stage = args[:stage] if args.key?(:stage) + @stderr_stream_name = args[:stderr_stream_name] if args.key?(:stderr_stream_name) + @stdout_stream_name = args[:stdout_stream_name] if args.key?(:stdout_stream_name) + end + end + + # The response message for + # Execution.Execute, + # which will be contained in the response + # field of the + # Operation. + class GoogleDevtoolsRemoteexecutionV1testExecuteResponse + include Google::Apis::Core::Hashable + + # True if the result was served from cache, false if it was executed. + # Corresponds to the JSON property `cachedResult` + # @return [Boolean] + attr_accessor :cached_result + alias_method :cached_result?, :cached_result + + # An ActionResult represents the result of an + # Action being run. + # Corresponds to the JSON property `result` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testActionResult] + attr_accessor :result + + # An optional list of additional log outputs the server wishes to provide. A + # server can use this to return execution-specific logs however it wishes. + # This is intended primarily to make it easier for users to debug issues that + # may be outside of the actual job execution, such as by identifying the + # worker executing the action or by providing logs from the worker's setup + # phase. The keys SHOULD be human readable so that a client can display them + # to a user. + # Corresponds to the JSON property `serverLogs` + # @return [Hash] + attr_accessor :server_logs + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `status` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus] + attr_accessor :status + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cached_result = args[:cached_result] if args.key?(:cached_result) + @result = args[:result] if args.key?(:result) + @server_logs = args[:server_logs] if args.key?(:server_logs) + @status = args[:status] if args.key?(:status) + end + end + + # A `FileNode` represents a single file and associated metadata. + class GoogleDevtoolsRemoteexecutionV1testFileNode + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # True if file is executable, false otherwise. + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The name of the file. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @name = args[:name] if args.key?(:name) + end + end + + # A `LogFile` is a log stored in the CAS. + class GoogleDevtoolsRemoteexecutionV1testLogFile + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # This is a hint as to the purpose of the log, and is set to true if the log + # is human-readable text that can be usefully displayed to a user, and false + # otherwise. For instance, if a command-line client wishes to print the + # server logs to the terminal for a failed action, this allows it to avoid + # displaying a binary file. + # Corresponds to the JSON property `humanReadable` + # @return [Boolean] + attr_accessor :human_readable + alias_method :human_readable?, :human_readable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @human_readable = args[:human_readable] if args.key?(:human_readable) + end + end + + # An `OutputDirectory` is the output in an `ActionResult` corresponding to a + # directory's full contents rather than a single file. + class GoogleDevtoolsRemoteexecutionV1testOutputDirectory + include Google::Apis::Core::Hashable + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # The full path of the directory relative to the working directory. The path + # separator is a forward slash `/`. Since this is a relative path, it MUST + # NOT begin with a leading forward slash. The empty string value is allowed, + # and it denotes the entire working directory. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `treeDigest` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :tree_digest + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @path = args[:path] if args.key?(:path) + @tree_digest = args[:tree_digest] if args.key?(:tree_digest) + end + end + + # An `OutputFile` is similar to a + # FileNode, but it is + # tailored for output as part of an `ActionResult`. It allows a full file path + # rather than only a name, and allows the server to include content inline. + # `OutputFile` is binary-compatible with `FileNode`. + class GoogleDevtoolsRemoteexecutionV1testOutputFile + include Google::Apis::Core::Hashable + + # The raw content of the file. + # This field may be used by the server to provide the content of a file + # inline in an + # ActionResult and + # avoid requiring that the client make a separate call to + # [ContentAddressableStorage.GetBlob] to retrieve it. + # The client SHOULD NOT assume that it will get raw content with any request, + # and always be prepared to retrieve it via `digest`. + # Corresponds to the JSON property `content` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :content + + # A content digest. A digest for a given blob consists of the size of the blob + # and its hash. The hash algorithm to use is defined by the server, but servers + # SHOULD use SHA-256. + # The size is considered to be an integral part of the digest and cannot be + # separated. That is, even if the `hash` field is correctly specified but + # `size_bytes` is not, the server MUST reject the request. + # The reason for including the size in the digest is as follows: in a great + # many cases, the server needs to know the size of the blob it is about to work + # with prior to starting an operation with it, such as flattening Merkle tree + # structures or streaming it to a worker. Technically, the server could + # implement a separate metadata store, but this results in a significantly more + # complicated implementation as opposed to having the client specify the size + # up-front (or storing the size along with the digest in every message where + # digests are embedded). This does mean that the API leaks some implementation + # details of (what we consider to be) a reasonable server implementation, but + # we consider this to be a worthwhile tradeoff. + # When a `Digest` is used to refer to a proto message, it always refers to the + # message in binary encoded form. To ensure consistent hashing, clients and + # servers MUST ensure that they serialize messages according to the following + # rules, even if there are alternate valid encodings for the same message. + # - Fields are serialized in tag order. + # - There are no unknown fields. + # - There are no duplicate fields. + # - Fields are serialized according to the default semantics for their type. + # Most protocol buffer implementations will always follow these rules when + # serializing, but care should be taken to avoid shortcuts. For instance, + # concatenating two messages to merge them may produce duplicate fields. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest] + attr_accessor :digest + + # True if file is executable, false otherwise. + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The full path of the file relative to the input root, including the + # filename. The path separator is a forward slash `/`. Since this is a + # relative path, it MUST NOT begin with a leading forward slash. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @content = args[:content] if args.key?(:content) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @path = args[:path] if args.key?(:path) + end + end + + # An optional Metadata to attach to any RPC request to tell the server about an + # external context of the request. The server may use this for logging or other + # purposes. To use it, the client attaches the header to the call using the + # canonical proto serialization: + # name: google.devtools.remoteexecution.v1test.requestmetadata-bin + # contents: the base64 encoded binary RequestMetadata message. + class GoogleDevtoolsRemoteexecutionV1testRequestMetadata + include Google::Apis::Core::Hashable + + # An identifier that ties multiple requests to the same action. + # For example, multiple requests to the CAS, Action Cache, and Execution + # API are used in order to compile foo.cc. + # Corresponds to the JSON property `actionId` + # @return [String] + attr_accessor :action_id + + # An identifier to tie multiple tool invocations together. For example, + # runs of foo_test, bar_test and baz_test on a post-submit of a given patch. + # Corresponds to the JSON property `correlatedInvocationsId` + # @return [String] + attr_accessor :correlated_invocations_id + + # Details for the tool used to call the API. + # Corresponds to the JSON property `toolDetails` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testToolDetails] + attr_accessor :tool_details + + # An identifier that ties multiple actions together to a final result. + # For example, multiple actions are required to build and run foo_test. + # Corresponds to the JSON property `toolInvocationId` + # @return [String] + attr_accessor :tool_invocation_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @action_id = args[:action_id] if args.key?(:action_id) + @correlated_invocations_id = args[:correlated_invocations_id] if args.key?(:correlated_invocations_id) + @tool_details = args[:tool_details] if args.key?(:tool_details) + @tool_invocation_id = args[:tool_invocation_id] if args.key?(:tool_invocation_id) + end + end + + # Details for the tool used to call the API. + class GoogleDevtoolsRemoteexecutionV1testToolDetails + include Google::Apis::Core::Hashable + + # Name of the tool, e.g. bazel. + # Corresponds to the JSON property `toolName` + # @return [String] + attr_accessor :tool_name + + # Version of the tool used for the request, e.g. 5.0.3. + # Corresponds to the JSON property `toolVersion` + # @return [String] + attr_accessor :tool_version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @tool_name = args[:tool_name] if args.key?(:tool_name) + @tool_version = args[:tool_version] if args.key?(:tool_version) + end + end + + # A `Tree` contains all the + # Directory protos in a + # single directory Merkle tree, compressed into one message. + class GoogleDevtoolsRemoteexecutionV1testTree + include Google::Apis::Core::Hashable + + # All the child directories: the directories referred to by the root and, + # recursively, all its children. In order to reconstruct the directory tree, + # the client must take the digests of each of the child directories and then + # build up a tree starting from the `root`. + # Corresponds to the JSON property `children` + # @return [Array] + attr_accessor :children + + # A `Directory` represents a directory node in a file tree, containing zero or + # more children FileNodes + # and DirectoryNodes. + # Each `Node` contains its name in the directory, the digest of its content + # (either a file blob or a `Directory` proto), as well as possibly some + # metadata about the file or directory. + # In order to ensure that two equivalent directory trees hash to the same + # value, the following restrictions MUST be obeyed when constructing a + # a `Directory`: + # - Every child in the directory must have a path of exactly one segment. + # Multiple levels of directory hierarchy may not be collapsed. + # - Each child in the directory must have a unique path segment (file name). + # - The files and directories in the directory must each be sorted in + # lexicographical order by path. The path strings must be sorted by code + # point, equivalently, by UTF-8 bytes. + # A `Directory` that obeys the restrictions is said to be in canonical form. + # As an example, the following could be used for a file named `bar` and a + # directory named `foo` with an executable file named `baz` (hashes shortened + # for readability): + # ```json + # // (Directory proto) + # ` + # files: [ + # ` + # name: "bar", + # digest: ` + # hash: "4a73bc9d03...", + # size: 65534 + # ` + # ` + # ], + # directories: [ + # ` + # name: "foo", + # digest: ` + # hash: "4cf2eda940...", + # size: 43 + # ` + # ` + # ] + # ` + # // (Directory proto with hash "4cf2eda940..." and size 43) + # ` + # files: [ + # ` + # name: "baz", + # digest: ` + # hash: "b2c941073e...", + # size: 1294, + # `, + # is_executable: true + # ` + # ] + # ` + # ``` + # Corresponds to the JSON property `root` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDirectory] + attr_accessor :root + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @children = args[:children] if args.key?(:children) + @root = args[:root] if args.key?(:root) + end + end + + # AdminTemp is a prelimiary set of administration tasks. It's called "Temp" + # because we do not yet know the best way to represent admin tasks; it's + # possible that this will be entirely replaced in later versions of this API. + # If this message proves to be sufficient, it will be renamed in the alpha or + # beta release of this API. + # This message (suitably marshalled into a protobuf.Any) can be used as the + # inline_assignment field in a lease; the lease assignment field should simply + # be `"admin"` in these cases. + # This message is heavily based on Swarming administration tasks from the LUCI + # project (http://github.com/luci/luci-py/appengine/swarming). + class GoogleDevtoolsRemoteworkersV1test2AdminTemp + include Google::Apis::Core::Hashable + + # The argument to the admin action; see `Command` for semantics. + # Corresponds to the JSON property `arg` + # @return [String] + attr_accessor :arg + + # The admin action; see `Command` for legal values. + # Corresponds to the JSON property `command` + # @return [String] + attr_accessor :command + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arg = args[:arg] if args.key?(:arg) + @command = args[:command] if args.key?(:command) + end + end + + # Describes a blob of binary content with its digest. + class GoogleDevtoolsRemoteworkersV1test2Blob + include Google::Apis::Core::Hashable + + # The contents of the blob. + # Corresponds to the JSON property `contents` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :contents + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :digest + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @contents = args[:contents] if args.key?(:contents) + @digest = args[:digest] if args.key?(:digest) + end + end + + # DEPRECATED - use CommandResult instead. + # Describes the actual outputs from the task. + class GoogleDevtoolsRemoteworkersV1test2CommandOutputs + include Google::Apis::Core::Hashable + + # exit_code is only fully reliable if the status' code is OK. If the task + # exceeded its deadline or was cancelled, the process may still produce an + # exit code as it is cancelled, and this will be populated, but a successful + # (zero) is unlikely to be correct unless the status code is OK. + # Corresponds to the JSON property `exitCode` + # @return [Fixnum] + attr_accessor :exit_code + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `outputs` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :outputs + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @exit_code = args[:exit_code] if args.key?(:exit_code) + @outputs = args[:outputs] if args.key?(:outputs) + end + end + + # DEPRECATED - use CommandResult instead. + # Can be used as part of CompleteRequest.metadata, or are part of a more + # sophisticated message. + class GoogleDevtoolsRemoteworkersV1test2CommandOverhead + include Google::Apis::Core::Hashable + + # The elapsed time between calling Accept and Complete. The server will also + # have its own idea of what this should be, but this excludes the overhead of + # the RPCs and the bot response time. + # Corresponds to the JSON property `duration` + # @return [String] + attr_accessor :duration + + # The amount of time *not* spent executing the command (ie + # uploading/downloading files). + # Corresponds to the JSON property `overhead` + # @return [String] + attr_accessor :overhead + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @duration = args[:duration] if args.key?(:duration) + @overhead = args[:overhead] if args.key?(:overhead) + end + end + + # All information about the execution of a command, suitable for providing as + # the Bots interface's `Lease.result` field. + class GoogleDevtoolsRemoteworkersV1test2CommandResult + include Google::Apis::Core::Hashable + + # The elapsed time between calling Accept and Complete. The server will also + # have its own idea of what this should be, but this excludes the overhead of + # the RPCs and the bot response time. + # Corresponds to the JSON property `duration` + # @return [String] + attr_accessor :duration + + # The exit code of the process. An exit code of "0" should only be trusted if + # `status` has a code of OK (otherwise it may simply be unset). + # Corresponds to the JSON property `exitCode` + # @return [Fixnum] + attr_accessor :exit_code + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `outputs` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :outputs + + # The amount of time *not* spent executing the command (ie + # uploading/downloading files). + # Corresponds to the JSON property `overhead` + # @return [String] + attr_accessor :overhead + + # Implementation-dependent statistics about the task. Both servers and bots + # may define messages which can be encoded here; bots are free to provide + # statistics in multiple formats, and servers are free to choose one or more + # of the values to process and ignore others. In particular, it is *not* + # considered an error for the bot to provide the server with a field that it + # doesn't know about. + # Corresponds to the JSON property `statistics` + # @return [Array>] + attr_accessor :statistics + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `status` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus] + attr_accessor :status + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @duration = args[:duration] if args.key?(:duration) + @exit_code = args[:exit_code] if args.key?(:exit_code) + @outputs = args[:outputs] if args.key?(:outputs) + @overhead = args[:overhead] if args.key?(:overhead) + @statistics = args[:statistics] if args.key?(:statistics) + @status = args[:status] if args.key?(:status) + end + end + + # Describes a shell-style task to execute, suitable for providing as the Bots + # interface's `Lease.payload` field. + class GoogleDevtoolsRemoteworkersV1test2CommandTask + include Google::Apis::Core::Hashable + + # Describes the expected outputs of the command. + # Corresponds to the JSON property `expectedOutputs` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs] + attr_accessor :expected_outputs + + # Describes the inputs to a shell-style task. + # Corresponds to the JSON property `inputs` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs] + attr_accessor :inputs + + # Describes the timeouts associated with this task. + # Corresponds to the JSON property `timeouts` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts] + attr_accessor :timeouts + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @expected_outputs = args[:expected_outputs] if args.key?(:expected_outputs) + @inputs = args[:inputs] if args.key?(:inputs) + @timeouts = args[:timeouts] if args.key?(:timeouts) + end + end + + # Describes the inputs to a shell-style task. + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs + include Google::Apis::Core::Hashable + + # The command itself to run (e.g., argv). + # This field should be passed directly to the underlying operating system, + # and so it must be sensible to that operating system. For example, on + # Windows, the first argument might be "C:\Windows\System32\ping.exe" - + # that is, using drive letters and backslashes. A command for a *nix + # system, on the other hand, would use forward slashes. + # All other fields in the RWAPI must consistently use forward slashes, + # since those fields may be interpretted by both the service and the bot. + # Corresponds to the JSON property `arguments` + # @return [Array] + attr_accessor :arguments + + # All environment variables required by the task. + # Corresponds to the JSON property `environmentVariables` + # @return [Array] + attr_accessor :environment_variables + + # The input filesystem to be set up prior to the task beginning. The + # contents should be a repeated set of FileMetadata messages though other + # formats are allowed if better for the implementation (eg, a LUCI-style + # .isolated file). + # This field is repeated since implementations might want to cache the + # metadata, in which case it may be useful to break up portions of the + # filesystem that change frequently (eg, specific input files) from those + # that don't (eg, standard header files). + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + # Inline contents for blobs expected to be needed by the bot to execute the + # task. For example, contents of entries in `files` or blobs that are + # indirectly referenced by an entry there. + # The bot should check against this list before downloading required task + # inputs to reduce the number of communications between itself and the + # remote CAS server. + # Corresponds to the JSON property `inlineBlobs` + # @return [Array] + attr_accessor :inline_blobs + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @arguments = args[:arguments] if args.key?(:arguments) + @environment_variables = args[:environment_variables] if args.key?(:environment_variables) + @files = args[:files] if args.key?(:files) + @inline_blobs = args[:inline_blobs] if args.key?(:inline_blobs) + end + end + + # An environment variable required by this task. + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable + include Google::Apis::Core::Hashable + + # The envvar name. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The envvar value. + # Corresponds to the JSON property `value` + # @return [String] + attr_accessor :value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + @value = args[:value] if args.key?(:value) + end + end + + # Describes the expected outputs of the command. + class GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs + include Google::Apis::Core::Hashable + + # A list of expected directories, relative to the execution root. All paths + # MUST be delimited by forward slashes. + # Corresponds to the JSON property `directories` + # @return [Array] + attr_accessor :directories + + # A list of expected files, relative to the execution root. All paths + # MUST be delimited by forward slashes. + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + # The destination to which any stderr should be sent. The method by which + # the bot should send the stream contents to that destination is not + # defined in this API. As examples, the destination could be a file + # referenced in the `files` field in this message, or it could be a URI + # that must be written via the ByteStream API. + # Corresponds to the JSON property `stderrDestination` + # @return [String] + attr_accessor :stderr_destination + + # The destination to which any stdout should be sent. The method by which + # the bot should send the stream contents to that destination is not + # defined in this API. As examples, the destination could be a file + # referenced in the `files` field in this message, or it could be a URI + # that must be written via the ByteStream API. + # Corresponds to the JSON property `stdoutDestination` + # @return [String] + attr_accessor :stdout_destination + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @directories = args[:directories] if args.key?(:directories) + @files = args[:files] if args.key?(:files) + @stderr_destination = args[:stderr_destination] if args.key?(:stderr_destination) + @stdout_destination = args[:stdout_destination] if args.key?(:stdout_destination) + end + end + + # Describes the timeouts associated with this task. + class GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts + include Google::Apis::Core::Hashable + + # This specifies the maximum time that the task can run, excluding the + # time required to download inputs or upload outputs. That is, the worker + # will terminate the task if it runs longer than this. + # Corresponds to the JSON property `execution` + # @return [String] + attr_accessor :execution + + # This specifies the maximum amount of time the task can be idle - that is, + # go without generating some output in either stdout or stderr. If the + # process is silent for more than the specified time, the worker will + # terminate the task. + # Corresponds to the JSON property `idle` + # @return [String] + attr_accessor :idle + + # If the execution or IO timeouts are exceeded, the worker will try to + # gracefully terminate the task and return any existing logs. However, + # tasks may be hard-frozen in which case this process will fail. This + # timeout specifies how long to wait for a terminated task to shut down + # gracefully (e.g. via SIGTERM) before we bring down the hammer (e.g. + # SIGKILL on *nix, CTRL_BREAK_EVENT on Windows). + # Corresponds to the JSON property `shutdown` + # @return [String] + attr_accessor :shutdown + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @execution = args[:execution] if args.key?(:execution) + @idle = args[:idle] if args.key?(:idle) + @shutdown = args[:shutdown] if args.key?(:shutdown) + end + end + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + class GoogleDevtoolsRemoteworkersV1test2Digest + include Google::Apis::Core::Hashable + + # A string-encoded hash (eg "1a2b3c", not the byte array [0x1a, 0x2b, 0x3c]) + # using an implementation-defined hash algorithm (eg SHA-256). + # Corresponds to the JSON property `hash` + # @return [String] + attr_accessor :hash_prop + + # The size of the contents. While this is not strictly required as part of an + # identifier (after all, any given hash will have exactly one canonical + # size), it's useful in almost all cases when one might want to send or + # retrieve blobs of content and is included here for this reason. + # Corresponds to the JSON property `sizeBytes` + # @return [Fixnum] + attr_accessor :size_bytes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @hash_prop = args[:hash_prop] if args.key?(:hash_prop) + @size_bytes = args[:size_bytes] if args.key?(:size_bytes) + end + end + + # The contents of a directory. Similar to the equivalent message in the Remote + # Execution API. + class GoogleDevtoolsRemoteworkersV1test2Directory + include Google::Apis::Core::Hashable + + # Any subdirectories + # Corresponds to the JSON property `directories` + # @return [Array] + attr_accessor :directories + + # The files in this directory + # Corresponds to the JSON property `files` + # @return [Array] + attr_accessor :files + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @directories = args[:directories] if args.key?(:directories) + @files = args[:files] if args.key?(:files) + end + end + + # The metadata for a directory. Similar to the equivalent message in the Remote + # Execution API. + class GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata + include Google::Apis::Core::Hashable + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :digest + + # The path of the directory, as in FileMetadata.path. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @digest = args[:digest] if args.key?(:digest) + @path = args[:path] if args.key?(:path) + end + end + + # The metadata for a file. Similar to the equivalent message in the Remote + # Execution API. + class GoogleDevtoolsRemoteworkersV1test2FileMetadata + include Google::Apis::Core::Hashable + + # If the file is small enough, its contents may also or alternatively be + # listed here. + # Corresponds to the JSON property `contents` + # NOTE: Values are automatically base64 encoded/decoded in the client library. + # @return [String] + attr_accessor :contents + + # The CommandTask and CommandResult messages assume the existence of a service + # that can serve blobs of content, identified by a hash and size known as a + # "digest." The method by which these blobs may be retrieved is not specified + # here, but a model implementation is in the Remote Execution API's + # "ContentAddressibleStorage" interface. + # In the context of the RWAPI, a Digest will virtually always refer to the + # contents of a file or a directory. The latter is represented by the + # byte-encoded Directory message. + # Corresponds to the JSON property `digest` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest] + attr_accessor :digest + + # Properties of the file + # Corresponds to the JSON property `isExecutable` + # @return [Boolean] + attr_accessor :is_executable + alias_method :is_executable?, :is_executable + + # The path of this file. If this message is part of the + # CommandOutputs.outputs fields, the path is relative to the execution root + # and must correspond to an entry in CommandTask.outputs.files. If this + # message is part of a Directory message, then the path is relative to the + # root of that directory. All paths MUST be delimited by forward slashes. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @contents = args[:contents] if args.key?(:contents) + @digest = args[:digest] if args.key?(:digest) + @is_executable = args[:is_executable] if args.key?(:is_executable) + @path = args[:path] if args.key?(:path) + end + end + + # This resource represents a long-running operation that is the result of a + # network API call. + class GoogleLongrunningOperation + include Google::Apis::Core::Hashable + + # 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. + # Corresponds to the JSON property `done` + # @return [Boolean] + attr_accessor :done + alias_method :done?, :done + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + # Corresponds to the JSON property `error` + # @return [Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus] + attr_accessor :error + + # 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. + # Corresponds to the JSON property `metadata` + # @return [Hash] + attr_accessor :metadata + + # 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 have the format of `operations/some/unique/name`. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The normal response of the operation in case of success. If the original + # method returns no data on success, such as `Delete`, the response is + # `google.protobuf.Empty`. If the original method is standard + # `Get`/`Create`/`Update`, the response should be the resource. For other + # methods, the response should have the type `XxxResponse`, where `Xxx` + # is the original method name. For example, if the original method name + # is `TakeSnapshot()`, the inferred response type is + # `TakeSnapshotResponse`. + # Corresponds to the JSON property `response` + # @return [Hash] + attr_accessor :response + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @done = args[:done] if args.key?(:done) + @error = args[:error] if args.key?(:error) + @metadata = args[:metadata] if args.key?(:metadata) + @name = args[:name] if args.key?(:name) + @response = args[:response] if args.key?(:response) + end + end + + # 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). The error model is designed to be: + # - Simple to use and understand for most users + # - Flexible enough to meet unexpected needs + # # Overview + # The `Status` message contains three pieces of data: error code, error message, + # and error details. The error code should be an enum value of + # google.rpc.Code, but it may accept additional error codes if needed. The + # error message should be a developer-facing English message that helps + # developers *understand* and *resolve* the error. If a localized user-facing + # error message is needed, put the localized message in the error details or + # localize it in the client. The optional error details may contain arbitrary + # information about the error. There is a predefined set of error detail types + # in the package `google.rpc` that can be used for common error conditions. + # # Language mapping + # The `Status` message is the logical representation of the error model, but it + # is not necessarily the actual wire format. When the `Status` message is + # exposed in different client libraries and different wire protocols, it can be + # mapped differently. For example, it will likely be mapped to some exceptions + # in Java, but more likely mapped to some error codes in C. + # # Other uses + # The error model and the `Status` message can be used in a variety of + # environments, either with or without APIs, to provide a + # consistent developer experience across different environments. + # Example uses of this error model include: + # - Partial errors. If a service needs to return partial errors to the client, + # it may embed the `Status` in the normal response to indicate the partial + # errors. + # - Workflow errors. A typical workflow has multiple steps. Each step may + # have a `Status` message for error reporting. + # - Batch operations. If a client uses batch request and batch response, the + # `Status` message should be used directly inside batch response, one for + # each error sub-response. + # - Asynchronous operations. If an API call embeds asynchronous operation + # results in its response, the status of those operations should be + # represented directly using the `Status` message. + # - Logging. If some API errors are stored in logs, the message `Status` could + # be used directly after any stripping needed for security/privacy reasons. + class GoogleRpcStatus + include Google::Apis::Core::Hashable + + # The status code, which should be an enum value of google.rpc.Code. + # Corresponds to the JSON property `code` + # @return [Fixnum] + attr_accessor :code + + # A list of messages that carry the error details. There is a common set of + # message types for APIs to use. + # Corresponds to the JSON property `details` + # @return [Array>] + attr_accessor :details + + # 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. + # Corresponds to the JSON property `message` + # @return [String] + attr_accessor :message + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @code = args[:code] if args.key?(:code) + @details = args[:details] if args.key?(:details) + @message = args[:message] if args.key?(:message) + end + end + end + end +end diff --git a/generated/google/apis/remotebuildexecution_v2/representations.rb b/generated/google/apis/remotebuildexecution_v2/representations.rb new file mode 100644 index 000000000..c6d2ba3e2 --- /dev/null +++ b/generated/google/apis/remotebuildexecution_v2/representations.rb @@ -0,0 +1,1431 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module RemotebuildexecutionV2 + + class BuildBazelRemoteExecutionV2Action + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ActionResult + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2BatchReadBlobsRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2BatchReadBlobsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2CacheCapabilities + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Command + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2CommandEnvironmentVariable + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Digest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Directory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2DirectoryNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ExecuteOperationMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ExecuteRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ExecuteResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ExecutedActionMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ExecutionCapabilities + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ExecutionPolicy + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2FileNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2FindMissingBlobsRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2FindMissingBlobsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2GetTreeResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2LogFile + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2OutputDirectory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2OutputFile + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2OutputSymlink + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Platform + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2PlatformProperty + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2PriorityCapabilities + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2RequestMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ResultsCachePolicy + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ServerCapabilities + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2SymlinkNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2ToolDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Tree + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2WaitExecutionRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelSemverSemVer + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildbotCommandDurations + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildbotCommandEvents + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testActionResult + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testCommand + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testDigest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testDirectory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testDirectoryNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testExecuteResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testFileNode + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testLogFile + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testOutputDirectory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testOutputFile + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testRequestMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testToolDetails + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteexecutionV1testTree + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2AdminTemp + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2Blob + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandOutputs + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandOverhead + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandResult + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTask + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2Digest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2Directory + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleDevtoolsRemoteworkersV1test2FileMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleLongrunningOperation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GoogleRpcStatus + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class BuildBazelRemoteExecutionV2Action + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :command_digest, as: 'commandDigest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + property :do_not_cache, as: 'doNotCache' + property :input_root_digest, as: 'inputRootDigest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + property :timeout, as: 'timeout' + end + end + + class BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :update_enabled, as: 'updateEnabled' + end + end + + class BuildBazelRemoteExecutionV2ActionResult + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :execution_metadata, as: 'executionMetadata', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ExecutedActionMetadata, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ExecutedActionMetadata::Representation + + property :exit_code, as: 'exitCode' + collection :output_directories, as: 'outputDirectories', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2OutputDirectory, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2OutputDirectory::Representation + + collection :output_directory_symlinks, as: 'outputDirectorySymlinks', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2OutputSymlink, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2OutputSymlink::Representation + + collection :output_file_symlinks, as: 'outputFileSymlinks', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2OutputSymlink, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2OutputSymlink::Representation + + collection :output_files, as: 'outputFiles', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2OutputFile, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2OutputFile::Representation + + property :stderr_digest, as: 'stderrDigest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + property :stderr_raw, :base64 => true, as: 'stderrRaw' + property :stdout_digest, as: 'stdoutDigest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + property :stdout_raw, :base64 => true, as: 'stdoutRaw' + end + end + + class BuildBazelRemoteExecutionV2BatchReadBlobsRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :digests, as: 'digests', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + end + end + + class BuildBazelRemoteExecutionV2BatchReadBlobsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :responses, as: 'responses', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse::Representation + + end + end + + class BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :data, :base64 => true, as: 'data' + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + property :status, as: 'status', class: Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus::Representation + + end + end + + class BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :requests, as: 'requests', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest::Representation + + end + end + + class BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :data, :base64 => true, as: 'data' + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + end + end + + class BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :responses, as: 'responses', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse::Representation + + end + end + + class BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + property :status, as: 'status', class: Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus::Representation + + end + end + + class BuildBazelRemoteExecutionV2CacheCapabilities + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_cache_update_capabilities, as: 'actionCacheUpdateCapabilities', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities::Representation + + property :cache_priority_capabilities, as: 'cachePriorityCapabilities', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2PriorityCapabilities, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2PriorityCapabilities::Representation + + collection :digest_function, as: 'digestFunction' + property :max_batch_total_size_bytes, :numeric_string => true, as: 'maxBatchTotalSizeBytes' + property :symlink_absolute_path_strategy, as: 'symlinkAbsolutePathStrategy' + end + end + + class BuildBazelRemoteExecutionV2Command + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :arguments, as: 'arguments' + collection :environment_variables, as: 'environmentVariables', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2CommandEnvironmentVariable, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2CommandEnvironmentVariable::Representation + + collection :output_directories, as: 'outputDirectories' + collection :output_files, as: 'outputFiles' + property :platform, as: 'platform', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Platform, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Platform::Representation + + property :working_directory, as: 'workingDirectory' + end + end + + class BuildBazelRemoteExecutionV2CommandEnvironmentVariable + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :value, as: 'value' + end + end + + class BuildBazelRemoteExecutionV2Digest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :hash_prop, as: 'hash' + property :size_bytes, :numeric_string => true, as: 'sizeBytes' + end + end + + class BuildBazelRemoteExecutionV2Directory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :directories, as: 'directories', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2DirectoryNode, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2DirectoryNode::Representation + + collection :files, as: 'files', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2FileNode, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2FileNode::Representation + + collection :symlinks, as: 'symlinks', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2SymlinkNode, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2SymlinkNode::Representation + + end + end + + class BuildBazelRemoteExecutionV2DirectoryNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + property :name, as: 'name' + end + end + + class BuildBazelRemoteExecutionV2ExecuteOperationMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_digest, as: 'actionDigest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + property :stage, as: 'stage' + property :stderr_stream_name, as: 'stderrStreamName' + property :stdout_stream_name, as: 'stdoutStreamName' + end + end + + class BuildBazelRemoteExecutionV2ExecuteRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_digest, as: 'actionDigest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + property :execution_policy, as: 'executionPolicy', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ExecutionPolicy, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ExecutionPolicy::Representation + + property :results_cache_policy, as: 'resultsCachePolicy', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ResultsCachePolicy, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ResultsCachePolicy::Representation + + property :skip_cache_lookup, as: 'skipCacheLookup' + end + end + + class BuildBazelRemoteExecutionV2ExecuteResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cached_result, as: 'cachedResult' + property :result, as: 'result', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionResult, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionResult::Representation + + hash :server_logs, as: 'serverLogs', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2LogFile, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2LogFile::Representation + + property :status, as: 'status', class: Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus::Representation + + end + end + + class BuildBazelRemoteExecutionV2ExecutedActionMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :execution_completed_timestamp, as: 'executionCompletedTimestamp' + property :execution_start_timestamp, as: 'executionStartTimestamp' + property :input_fetch_completed_timestamp, as: 'inputFetchCompletedTimestamp' + property :input_fetch_start_timestamp, as: 'inputFetchStartTimestamp' + property :output_upload_completed_timestamp, as: 'outputUploadCompletedTimestamp' + property :output_upload_start_timestamp, as: 'outputUploadStartTimestamp' + property :queued_timestamp, as: 'queuedTimestamp' + property :worker, as: 'worker' + property :worker_completed_timestamp, as: 'workerCompletedTimestamp' + property :worker_start_timestamp, as: 'workerStartTimestamp' + end + end + + class BuildBazelRemoteExecutionV2ExecutionCapabilities + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest_function, as: 'digestFunction' + property :exec_enabled, as: 'execEnabled' + property :execution_priority_capabilities, as: 'executionPriorityCapabilities', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2PriorityCapabilities, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2PriorityCapabilities::Representation + + end + end + + class BuildBazelRemoteExecutionV2ExecutionPolicy + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :priority, as: 'priority' + end + end + + class BuildBazelRemoteExecutionV2FileNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + property :is_executable, as: 'isExecutable' + property :name, as: 'name' + end + end + + class BuildBazelRemoteExecutionV2FindMissingBlobsRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :blob_digests, as: 'blobDigests', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + end + end + + class BuildBazelRemoteExecutionV2FindMissingBlobsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :missing_blob_digests, as: 'missingBlobDigests', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + end + end + + class BuildBazelRemoteExecutionV2GetTreeResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :directories, as: 'directories', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Directory, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Directory::Representation + + property :next_page_token, as: 'nextPageToken' + end + end + + class BuildBazelRemoteExecutionV2LogFile + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + property :human_readable, as: 'humanReadable' + end + end + + class BuildBazelRemoteExecutionV2OutputDirectory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :path, as: 'path' + property :tree_digest, as: 'treeDigest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + end + end + + class BuildBazelRemoteExecutionV2OutputFile + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Digest::Representation + + property :is_executable, as: 'isExecutable' + property :path, as: 'path' + end + end + + class BuildBazelRemoteExecutionV2OutputSymlink + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :path, as: 'path' + property :target, as: 'target' + end + end + + class BuildBazelRemoteExecutionV2Platform + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :properties, as: 'properties', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2PlatformProperty, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2PlatformProperty::Representation + + end + end + + class BuildBazelRemoteExecutionV2PlatformProperty + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :value, as: 'value' + end + end + + class BuildBazelRemoteExecutionV2PriorityCapabilities + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :priorities, as: 'priorities', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange::Representation + + end + end + + class BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :max_priority, as: 'maxPriority' + property :min_priority, as: 'minPriority' + end + end + + class BuildBazelRemoteExecutionV2RequestMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_id, as: 'actionId' + property :correlated_invocations_id, as: 'correlatedInvocationsId' + property :tool_details, as: 'toolDetails', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ToolDetails, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ToolDetails::Representation + + property :tool_invocation_id, as: 'toolInvocationId' + end + end + + class BuildBazelRemoteExecutionV2ResultsCachePolicy + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :priority, as: 'priority' + end + end + + class BuildBazelRemoteExecutionV2ServerCapabilities + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cache_capabilities, as: 'cacheCapabilities', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2CacheCapabilities, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2CacheCapabilities::Representation + + property :deprecated_api_version, as: 'deprecatedApiVersion', class: Google::Apis::RemotebuildexecutionV2::BuildBazelSemverSemVer, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelSemverSemVer::Representation + + property :execution_capabilities, as: 'executionCapabilities', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ExecutionCapabilities, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ExecutionCapabilities::Representation + + property :high_api_version, as: 'highApiVersion', class: Google::Apis::RemotebuildexecutionV2::BuildBazelSemverSemVer, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelSemverSemVer::Representation + + property :low_api_version, as: 'lowApiVersion', class: Google::Apis::RemotebuildexecutionV2::BuildBazelSemverSemVer, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelSemverSemVer::Representation + + end + end + + class BuildBazelRemoteExecutionV2SymlinkNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :target, as: 'target' + end + end + + class BuildBazelRemoteExecutionV2ToolDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :tool_name, as: 'toolName' + property :tool_version, as: 'toolVersion' + end + end + + class BuildBazelRemoteExecutionV2Tree + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :children, as: 'children', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Directory, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Directory::Representation + + property :root, as: 'root', class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Directory, decorator: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Directory::Representation + + end + end + + class BuildBazelRemoteExecutionV2WaitExecutionRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + end + end + + class BuildBazelSemverSemVer + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :major, as: 'major' + property :minor, as: 'minor' + property :patch, as: 'patch' + property :prerelease, as: 'prerelease' + end + end + + class GoogleDevtoolsRemotebuildbotCommandDurations + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :docker_prep, as: 'dockerPrep' + property :download, as: 'download' + property :execution, as: 'execution' + property :iso_prep_done, as: 'isoPrepDone' + property :overall, as: 'overall' + property :stdout, as: 'stdout' + property :upload, as: 'upload' + end + end + + class GoogleDevtoolsRemotebuildbotCommandEvents + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :docker_cache_hit, as: 'dockerCacheHit' + property :num_errors, :numeric_string => true, as: 'numErrors' + property :num_warnings, :numeric_string => true, as: 'numWarnings' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :instance, as: 'instance', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance::Representation + + property :instance_id, as: 'instanceId' + property :parent, as: 'parent' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :parent, as: 'parent' + property :pool_id, as: 'poolId' + property :worker_pool, as: 'workerPool', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool::Representation + + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :location, as: 'location' + property :name, as: 'name' + property :state, as: 'state' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :parent, as: 'parent' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :instances, as: 'instances', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance::Representation + + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :parent, as: 'parent' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :worker_pools, as: 'workerPools', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool::Representation + + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :update_mask, as: 'updateMask' + property :worker_pool, as: 'workerPool', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool::Representation + + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :disk_size_gb, :numeric_string => true, as: 'diskSizeGb' + property :disk_type, as: 'diskType' + property :machine_type, as: 'machineType' + property :min_cpu_platform, as: 'minCpuPlatform' + property :reserved, as: 'reserved' + end + end + + class GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :state, as: 'state' + property :worker_config, as: 'workerConfig', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig::Representation + + property :worker_count, :numeric_string => true, as: 'workerCount' + end + end + + class GoogleDevtoolsRemoteexecutionV1testActionResult + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :exit_code, as: 'exitCode' + collection :output_directories, as: 'outputDirectories', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testOutputDirectory, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testOutputDirectory::Representation + + collection :output_files, as: 'outputFiles', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testOutputFile, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testOutputFile::Representation + + property :stderr_digest, as: 'stderrDigest', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :stderr_raw, :base64 => true, as: 'stderrRaw' + property :stdout_digest, as: 'stdoutDigest', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :stdout_raw, :base64 => true, as: 'stdoutRaw' + end + end + + class GoogleDevtoolsRemoteexecutionV1testCommand + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :arguments, as: 'arguments' + collection :environment_variables, as: 'environmentVariables', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable::Representation + + end + end + + class GoogleDevtoolsRemoteexecutionV1testCommandEnvironmentVariable + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :value, as: 'value' + end + end + + class GoogleDevtoolsRemoteexecutionV1testDigest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :hash_prop, as: 'hash' + property :size_bytes, :numeric_string => true, as: 'sizeBytes' + end + end + + class GoogleDevtoolsRemoteexecutionV1testDirectory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :directories, as: 'directories', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDirectoryNode, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDirectoryNode::Representation + + collection :files, as: 'files', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testFileNode, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testFileNode::Representation + + end + end + + class GoogleDevtoolsRemoteexecutionV1testDirectoryNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemoteexecutionV1testExecuteOperationMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_digest, as: 'actionDigest', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :stage, as: 'stage' + property :stderr_stream_name, as: 'stderrStreamName' + property :stdout_stream_name, as: 'stdoutStreamName' + end + end + + class GoogleDevtoolsRemoteexecutionV1testExecuteResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cached_result, as: 'cachedResult' + property :result, as: 'result', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testActionResult, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testActionResult::Representation + + hash :server_logs, as: 'serverLogs', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testLogFile, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testLogFile::Representation + + property :status, as: 'status', class: Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus::Representation + + end + end + + class GoogleDevtoolsRemoteexecutionV1testFileNode + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :is_executable, as: 'isExecutable' + property :name, as: 'name' + end + end + + class GoogleDevtoolsRemoteexecutionV1testLogFile + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :human_readable, as: 'humanReadable' + end + end + + class GoogleDevtoolsRemoteexecutionV1testOutputDirectory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :path, as: 'path' + property :tree_digest, as: 'treeDigest', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + end + end + + class GoogleDevtoolsRemoteexecutionV1testOutputFile + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :content, :base64 => true, as: 'content' + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDigest::Representation + + property :is_executable, as: 'isExecutable' + property :path, as: 'path' + end + end + + class GoogleDevtoolsRemoteexecutionV1testRequestMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :action_id, as: 'actionId' + property :correlated_invocations_id, as: 'correlatedInvocationsId' + property :tool_details, as: 'toolDetails', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testToolDetails, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testToolDetails::Representation + + property :tool_invocation_id, as: 'toolInvocationId' + end + end + + class GoogleDevtoolsRemoteexecutionV1testToolDetails + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :tool_name, as: 'toolName' + property :tool_version, as: 'toolVersion' + end + end + + class GoogleDevtoolsRemoteexecutionV1testTree + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :children, as: 'children', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDirectory, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDirectory::Representation + + property :root, as: 'root', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDirectory, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteexecutionV1testDirectory::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2AdminTemp + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :arg, as: 'arg' + property :command, as: 'command' + end + end + + class GoogleDevtoolsRemoteworkersV1test2Blob + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :contents, :base64 => true, as: 'contents' + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandOutputs + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :exit_code, as: 'exitCode' + property :outputs, as: 'outputs', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandOverhead + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :duration, as: 'duration' + property :overhead, as: 'overhead' + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandResult + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :duration, as: 'duration' + property :exit_code, as: 'exitCode' + property :outputs, as: 'outputs', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + property :overhead, as: 'overhead' + collection :statistics, as: 'statistics' + property :status, as: 'status', class: Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTask + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :expected_outputs, as: 'expectedOutputs', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs::Representation + + property :inputs, as: 'inputs', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs::Representation + + property :timeouts, as: 'timeouts', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :arguments, as: 'arguments' + collection :environment_variables, as: 'environmentVariables', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable::Representation + + collection :files, as: 'files', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + collection :inline_blobs, as: 'inlineBlobs', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Blob, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Blob::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :name, as: 'name' + property :value, as: 'value' + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :directories, as: 'directories' + collection :files, as: 'files' + property :stderr_destination, as: 'stderrDestination' + property :stdout_destination, as: 'stdoutDestination' + end + end + + class GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :execution, as: 'execution' + property :idle, as: 'idle' + property :shutdown, as: 'shutdown' + end + end + + class GoogleDevtoolsRemoteworkersV1test2Digest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :hash_prop, as: 'hash' + property :size_bytes, :numeric_string => true, as: 'sizeBytes' + end + end + + class GoogleDevtoolsRemoteworkersV1test2Directory + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :directories, as: 'directories', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata::Representation + + collection :files, as: 'files', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2FileMetadata, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2FileMetadata::Representation + + end + end + + class GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + property :path, as: 'path' + end + end + + class GoogleDevtoolsRemoteworkersV1test2FileMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :contents, :base64 => true, as: 'contents' + property :digest, as: 'digest', class: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest, decorator: Google::Apis::RemotebuildexecutionV2::GoogleDevtoolsRemoteworkersV1test2Digest::Representation + + property :is_executable, as: 'isExecutable' + property :path, as: 'path' + end + end + + class GoogleLongrunningOperation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :done, as: 'done' + property :error, as: 'error', class: Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus, decorator: Google::Apis::RemotebuildexecutionV2::GoogleRpcStatus::Representation + + hash :metadata, as: 'metadata' + property :name, as: 'name' + hash :response, as: 'response' + end + end + + class GoogleRpcStatus + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :code, as: 'code' + collection :details, as: 'details' + property :message, as: 'message' + end + end + end + end +end diff --git a/generated/google/apis/remotebuildexecution_v2/service.rb b/generated/google/apis/remotebuildexecution_v2/service.rb new file mode 100644 index 000000000..0f85af387 --- /dev/null +++ b/generated/google/apis/remotebuildexecution_v2/service.rb @@ -0,0 +1,542 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module RemotebuildexecutionV2 + # Remote Build Execution API + # + # Supplies a Remote Execution API service for tools such as bazel. + # + # @example + # require 'google/apis/remotebuildexecution_v2' + # + # Remotebuildexecution = Google::Apis::RemotebuildexecutionV2 # Alias the module + # service = Remotebuildexecution::RemoteBuildExecutionService.new + # + # @see https://cloud.google.com/remote-build-execution/docs/ + class RemoteBuildExecutionService < Google::Apis::Core::BaseService + # @return [String] + # 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. + attr_accessor :key + + # @return [String] + # 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. + attr_accessor :quota_user + + def initialize + super('https://remotebuildexecution.googleapis.com/', '') + @batch_path = 'batch' + end + + # Retrieve a cached execution result. + # Errors: + # * `NOT_FOUND`: The requested `ActionResult` is not in the cache. + # @param [String] instance_name + # The instance of the execution system to operate against. A server may + # support multiple instances of the execution system (with their own workers, + # storage, caches, etc.). The server MAY require use of this field to select + # between them in an implementation-defined fashion, otherwise it can be + # omitted. + # @param [String] hash_ + # The hash. In the case of SHA-256, it will always be a lowercase hex string + # exactly 64 characters long. + # @param [Fixnum] size_bytes + # The size of the blob, in bytes. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionResult] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionResult] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_action_result(instance_name, hash_, size_bytes, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v2/{+instanceName}/actionResults/{hash}/{sizeBytes}', options) + command.response_representation = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionResult::Representation + command.response_class = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionResult + command.params['instanceName'] = instance_name unless instance_name.nil? + command.params['hash'] = hash_ unless hash_.nil? + command.params['sizeBytes'] = size_bytes unless size_bytes.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Upload a new execution result. + # This method is intended for servers which implement the distributed cache + # independently of the + # Execution API. As a + # result, it is OPTIONAL for servers to implement. + # In order to allow the server to perform access control based on the type of + # action, and to assist with client debugging, the client MUST first upload + # the Action that produced the + # result, along with its + # Command, into the + # `ContentAddressableStorage`. + # Errors: + # * `UNIMPLEMENTED`: This method is not supported by the server. + # * `RESOURCE_EXHAUSTED`: There is insufficient storage space to add the + # entry to the cache. + # @param [String] instance_name + # The instance of the execution system to operate against. A server may + # support multiple instances of the execution system (with their own workers, + # storage, caches, etc.). The server MAY require use of this field to select + # between them in an implementation-defined fashion, otherwise it can be + # omitted. + # @param [String] hash_ + # The hash. In the case of SHA-256, it will always be a lowercase hex string + # exactly 64 characters long. + # @param [Fixnum] size_bytes + # The size of the blob, in bytes. + # @param [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionResult] build_bazel_remote_execution_v2_action_result_object + # @param [Fixnum] results_cache_policy_priority + # The priority (relative importance) of this content in the overall cache. + # Generally, a lower value means a longer retention time or other advantage, + # but the interpretation of a given value is server-dependent. A priority of + # 0 means a *default* value, decided by the server. + # The particular semantics of this field is up to the server. In particular, + # every server will have their own supported range of priorities, and will + # decide how these map into retention/eviction policy. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionResult] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionResult] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def update_action_result(instance_name, hash_, size_bytes, build_bazel_remote_execution_v2_action_result_object = nil, results_cache_policy_priority: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:put, 'v2/{+instanceName}/actionResults/{hash}/{sizeBytes}', options) + command.request_representation = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionResult::Representation + command.request_object = build_bazel_remote_execution_v2_action_result_object + command.response_representation = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionResult::Representation + command.response_class = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ActionResult + command.params['instanceName'] = instance_name unless instance_name.nil? + command.params['hash'] = hash_ unless hash_.nil? + command.params['sizeBytes'] = size_bytes unless size_bytes.nil? + command.query['resultsCachePolicy.priority'] = results_cache_policy_priority unless results_cache_policy_priority.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Execute an action remotely. + # In order to execute an action, the client must first upload all of the + # inputs, the + # Command to run, and the + # Action into the + # ContentAddressableStorage. + # It then calls `Execute` with an `action_digest` referring to them. The + # server will run the action and eventually return the result. + # The input `Action`'s fields MUST meet the various canonicalization + # requirements specified in the documentation for their types so that it has + # the same digest as other logically equivalent `Action`s. The server MAY + # enforce the requirements and return errors if a non-canonical input is + # received. It MAY also proceed without verifying some or all of the + # requirements, such as for performance reasons. If the server does not + # verify the requirement, then it will treat the `Action` as distinct from + # another logically equivalent action if they hash differently. + # Returns a stream of + # google.longrunning.Operation messages + # describing the resulting execution, with eventual `response` + # ExecuteResponse. The + # `metadata` on the operation is of type + # ExecuteOperationMetadata. + # If the client remains connected after the first response is returned after + # the server, then updates are streamed as if the client had called + # WaitExecution + # until the execution completes or the request reaches an error. The + # operation can also be queried using Operations + # API. + # The server NEED NOT implement other methods or functionality of the + # Operations API. + # Errors discovered during creation of the `Operation` will be reported + # as gRPC Status errors, while errors that occurred while running the + # action will be reported in the `status` field of the `ExecuteResponse`. The + # server MUST NOT set the `error` field of the `Operation` proto. + # The possible errors include: + # * `INVALID_ARGUMENT`: One or more arguments are invalid. + # * `FAILED_PRECONDITION`: One or more errors occurred in setting up the + # action requested, such as a missing input or command or no worker being + # available. The client may be able to fix the errors and retry. + # * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to run + # the action. + # * `UNAVAILABLE`: Due to a transient condition, such as all workers being + # occupied (and the server does not support a queue), the action could not + # be started. The client should retry. + # * `INTERNAL`: An internal error occurred in the execution engine or the + # worker. + # * `DEADLINE_EXCEEDED`: The execution timed out. + # In the case of a missing input or command, the server SHOULD additionally + # send a PreconditionFailure error detail + # where, for each requested blob not present in the CAS, there is a + # `Violation` with a `type` of `MISSING` and a `subject` of + # `"blobs/`hash`/`size`"` indicating the digest of the missing blob. + # @param [String] instance_name + # The instance of the execution system to operate against. A server may + # support multiple instances of the execution system (with their own workers, + # storage, caches, etc.). The server MAY require use of this field to select + # between them in an implementation-defined fashion, otherwise it can be + # omitted. + # @param [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ExecuteRequest] build_bazel_remote_execution_v2_execute_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV2::GoogleLongrunningOperation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV2::GoogleLongrunningOperation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def execute_action(instance_name, build_bazel_remote_execution_v2_execute_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v2/{+instanceName}/actions:execute', options) + command.request_representation = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ExecuteRequest::Representation + command.request_object = build_bazel_remote_execution_v2_execute_request_object + command.response_representation = Google::Apis::RemotebuildexecutionV2::GoogleLongrunningOperation::Representation + command.response_class = Google::Apis::RemotebuildexecutionV2::GoogleLongrunningOperation + command.params['instanceName'] = instance_name unless instance_name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Download many blobs at once. + # The server may enforce a limit of the combined total size of blobs + # to be downloaded using this API. This limit may be obtained using the + # Capabilities API. + # Requests exceeding the limit should either be split into smaller + # chunks or downloaded using the + # ByteStream API, as appropriate. + # This request is equivalent to calling a Bytestream `Read` request + # on each individual blob, in parallel. The requests may succeed or fail + # independently. + # Errors: + # * `INVALID_ARGUMENT`: The client attempted to read more than the + # server supported limit. + # Every error on individual read will be returned in the corresponding digest + # status. + # @param [String] instance_name + # The instance of the execution system to operate against. A server may + # support multiple instances of the execution system (with their own workers, + # storage, caches, etc.). The server MAY require use of this field to select + # between them in an implementation-defined fashion, otherwise it can be + # omitted. + # @param [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchReadBlobsRequest] build_bazel_remote_execution_v2_batch_read_blobs_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchReadBlobsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchReadBlobsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def batch_blob_read(instance_name, build_bazel_remote_execution_v2_batch_read_blobs_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v2/{+instanceName}/blobs:batchRead', options) + command.request_representation = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchReadBlobsRequest::Representation + command.request_object = build_bazel_remote_execution_v2_batch_read_blobs_request_object + command.response_representation = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchReadBlobsResponse::Representation + command.response_class = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchReadBlobsResponse + command.params['instanceName'] = instance_name unless instance_name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Upload many blobs at once. + # The server may enforce a limit of the combined total size of blobs + # to be uploaded using this API. This limit may be obtained using the + # Capabilities API. + # Requests exceeding the limit should either be split into smaller + # chunks or uploaded using the + # ByteStream API, as appropriate. + # This request is equivalent to calling a Bytestream `Write` request + # on each individual blob, in parallel. The requests may succeed or fail + # independently. + # Errors: + # * `INVALID_ARGUMENT`: The client attempted to upload more than the + # server supported limit. + # Individual requests may return the following errors, additionally: + # * `RESOURCE_EXHAUSTED`: There is insufficient disk quota to store the blob. + # * `INVALID_ARGUMENT`: The + # Digest does not match the + # provided data. + # @param [String] instance_name + # The instance of the execution system to operate against. A server may + # support multiple instances of the execution system (with their own workers, + # storage, caches, etc.). The server MAY require use of this field to select + # between them in an implementation-defined fashion, otherwise it can be + # omitted. + # @param [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest] build_bazel_remote_execution_v2_batch_update_blobs_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def batch_blob_update(instance_name, build_bazel_remote_execution_v2_batch_update_blobs_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v2/{+instanceName}/blobs:batchUpdate', options) + command.request_representation = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest::Representation + command.request_object = build_bazel_remote_execution_v2_batch_update_blobs_request_object + command.response_representation = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse::Representation + command.response_class = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse + command.params['instanceName'] = instance_name unless instance_name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Determine if blobs are present in the CAS. + # Clients can use this API before uploading blobs to determine which ones are + # already present in the CAS and do not need to be uploaded again. + # There are no method-specific errors. + # @param [String] instance_name + # The instance of the execution system to operate against. A server may + # support multiple instances of the execution system (with their own workers, + # storage, caches, etc.). The server MAY require use of this field to select + # between them in an implementation-defined fashion, otherwise it can be + # omitted. + # @param [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2FindMissingBlobsRequest] build_bazel_remote_execution_v2_find_missing_blobs_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2FindMissingBlobsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2FindMissingBlobsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def find_blob_missing(instance_name, build_bazel_remote_execution_v2_find_missing_blobs_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v2/{+instanceName}/blobs:findMissing', options) + command.request_representation = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2FindMissingBlobsRequest::Representation + command.request_object = build_bazel_remote_execution_v2_find_missing_blobs_request_object + command.response_representation = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2FindMissingBlobsResponse::Representation + command.response_class = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2FindMissingBlobsResponse + command.params['instanceName'] = instance_name unless instance_name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Fetch the entire directory tree rooted at a node. + # This request must be targeted at a + # Directory stored in the + # ContentAddressableStorage + # (CAS). The server will enumerate the `Directory` tree recursively and + # return every node descended from the root. + # The GetTreeRequest.page_token parameter can be used to skip ahead in + # the stream (e.g. when retrying a partially completed and aborted request), + # by setting it to a value taken from GetTreeResponse.next_page_token of the + # last successfully processed GetTreeResponse). + # The exact traversal order is unspecified and, unless retrieving subsequent + # pages from an earlier request, is not guaranteed to be stable across + # multiple invocations of `GetTree`. + # If part of the tree is missing from the CAS, the server will return the + # portion present and omit the rest. + # * `NOT_FOUND`: The requested tree root is not present in the CAS. + # @param [String] instance_name + # The instance of the execution system to operate against. A server may + # support multiple instances of the execution system (with their own workers, + # storage, caches, etc.). The server MAY require use of this field to select + # between them in an implementation-defined fashion, otherwise it can be + # omitted. + # @param [String] hash_ + # The hash. In the case of SHA-256, it will always be a lowercase hex string + # exactly 64 characters long. + # @param [Fixnum] size_bytes + # The size of the blob, in bytes. + # @param [Fixnum] page_size + # A maximum page size to request. If present, the server will request no more + # than this many items. Regardless of whether a page size is specified, the + # server may place its own limit on the number of items to be returned and + # require the client to retrieve more items using a subsequent request. + # @param [String] page_token + # A page token, which must be a value received in a previous + # GetTreeResponse. + # If present, the server will use it to return the following page of results. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2GetTreeResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2GetTreeResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_blob_tree(instance_name, hash_, size_bytes, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v2/{+instanceName}/blobs/{hash}/{sizeBytes}:getTree', options) + command.response_representation = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2GetTreeResponse::Representation + command.response_class = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2GetTreeResponse + command.params['instanceName'] = instance_name unless instance_name.nil? + command.params['hash'] = hash_ unless hash_.nil? + command.params['sizeBytes'] = size_bytes unless size_bytes.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Wait for an execution operation to complete. When the client initially + # makes the request, the server immediately responds with the current status + # of the execution. The server will leave the request stream open until the + # operation completes, and then respond with the completed operation. The + # server MAY choose to stream additional updates as execution progresses, + # such as to provide an update as to the state of the execution. + # @param [String] name + # The name of the Operation + # returned by Execute. + # @param [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2WaitExecutionRequest] build_bazel_remote_execution_v2_wait_execution_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV2::GoogleLongrunningOperation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV2::GoogleLongrunningOperation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def wait_operation_execution(name, build_bazel_remote_execution_v2_wait_execution_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v2/{+name}:waitExecution', options) + command.request_representation = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2WaitExecutionRequest::Representation + command.request_object = build_bazel_remote_execution_v2_wait_execution_request_object + command.response_representation = Google::Apis::RemotebuildexecutionV2::GoogleLongrunningOperation::Representation + command.response_class = Google::Apis::RemotebuildexecutionV2::GoogleLongrunningOperation + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # GetCapabilities returns the server capabilities configuration. + # @param [String] instance_name + # The instance of the execution system to operate against. A server may + # support multiple instances of the execution system (with their own workers, + # storage, caches, etc.). The server MAY require use of this field to select + # between them in an implementation-defined fashion, otherwise it can be + # omitted. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ServerCapabilities] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ServerCapabilities] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_capabilities(instance_name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v2/{+instanceName}/capabilities', options) + command.response_representation = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ServerCapabilities::Representation + command.response_class = Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2ServerCapabilities + command.params['instanceName'] = instance_name unless instance_name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + protected + + def apply_command_defaults(command) + command.query['key'] = key unless key.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + end + end + end + end +end diff --git a/generated/google/apis/speech_v1.rb b/generated/google/apis/speech_v1.rb index 2c45dd6a8..708448daf 100644 --- a/generated/google/apis/speech_v1.rb +++ b/generated/google/apis/speech_v1.rb @@ -25,7 +25,7 @@ module Google # @see https://cloud.google.com/speech-to-text/docs/quickstart-protocol module SpeechV1 VERSION = 'V1' - REVISION = '20181127' + REVISION = '20190104' # View and manage your data across Google Cloud Platform services AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' diff --git a/generated/google/apis/speech_v1/classes.rb b/generated/google/apis/speech_v1/classes.rb index 55a2f04b2..206265fe1 100644 --- a/generated/google/apis/speech_v1/classes.rb +++ b/generated/google/apis/speech_v1/classes.rb @@ -286,6 +286,17 @@ module Google attr_accessor :enable_automatic_punctuation alias_method :enable_automatic_punctuation?, :enable_automatic_punctuation + # This needs to be set to ‘true’ explicitly and `audio_channel_count` > 1 + # to get each channel recognized separately. The recognition result will + # contain a `channel_tag` field to state which channel that result belongs + # to. If this is not true, we will only recognize the first channel. The + # request is billed cumulatively for all channels recognized: + # `audio_channel_count` multiplied by the length of the audio. + # Corresponds to the JSON property `enableSeparateRecognitionPerChannel` + # @return [Boolean] + attr_accessor :enable_separate_recognition_per_channel + alias_method :enable_separate_recognition_per_channel?, :enable_separate_recognition_per_channel + # *Optional* If `true`, the top result includes a list of words and # the start and end time offsets (timestamps) for those words. If # `false`, no word-level time offset information is returned. The default is @@ -409,6 +420,7 @@ module Google # Update properties of this object def update!(**args) @enable_automatic_punctuation = args[:enable_automatic_punctuation] if args.key?(:enable_automatic_punctuation) + @enable_separate_recognition_per_channel = args[:enable_separate_recognition_per_channel] if args.key?(:enable_separate_recognition_per_channel) @enable_word_time_offsets = args[:enable_word_time_offsets] if args.key?(:enable_word_time_offsets) @encoding = args[:encoding] if args.key?(:encoding) @language_code = args[:language_code] if args.key?(:language_code) @@ -548,6 +560,13 @@ module Google # @return [Array] attr_accessor :alternatives + # For multi-channel audio, this is the channel number corresponding to the + # recognized result for the audio from that channel. + # For audio_channel_count = N, its output values can range from '1' to 'N'. + # Corresponds to the JSON property `channelTag` + # @return [Fixnum] + attr_accessor :channel_tag + def initialize(**args) update!(**args) end @@ -555,6 +574,7 @@ module Google # Update properties of this object def update!(**args) @alternatives = args[:alternatives] if args.key?(:alternatives) + @channel_tag = args[:channel_tag] if args.key?(:channel_tag) end end diff --git a/generated/google/apis/speech_v1/representations.rb b/generated/google/apis/speech_v1/representations.rb index d3ff3e5be..14241ca1a 100644 --- a/generated/google/apis/speech_v1/representations.rb +++ b/generated/google/apis/speech_v1/representations.rb @@ -166,6 +166,7 @@ module Google # @private class Representation < Google::Apis::Core::JsonRepresentation property :enable_automatic_punctuation, as: 'enableAutomaticPunctuation' + property :enable_separate_recognition_per_channel, as: 'enableSeparateRecognitionPerChannel' property :enable_word_time_offsets, as: 'enableWordTimeOffsets' property :encoding, as: 'encoding' property :language_code, as: 'languageCode' @@ -219,6 +220,7 @@ module Google class Representation < Google::Apis::Core::JsonRepresentation collection :alternatives, as: 'alternatives', class: Google::Apis::SpeechV1::SpeechRecognitionAlternative, decorator: Google::Apis::SpeechV1::SpeechRecognitionAlternative::Representation + property :channel_tag, as: 'channelTag' end end diff --git a/generated/google/apis/speech_v1/service.rb b/generated/google/apis/speech_v1/service.rb index e0a201901..47073f31c 100644 --- a/generated/google/apis/speech_v1/service.rb +++ b/generated/google/apis/speech_v1/service.rb @@ -126,6 +126,117 @@ module Google execute_or_queue_command(command, &block) end + # 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. + # @param [String] name + # The name of the operation resource. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::SpeechV1::Operation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::SpeechV1::Operation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_location_operation(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}', options) + command.response_representation = Google::Apis::SpeechV1::Operation::Representation + command.response_class = Google::Apis::SpeechV1::Operation + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists operations that match the specified filter in the request. If the + # server doesn't support this method, it returns `UNIMPLEMENTED`. + # NOTE: the `name` binding allows API services to override the binding + # to use different resource name schemes, such as `users/*/operations`. To + # override the binding, API services can add a binding such as + # `"/v1/`name=users/*`/operations"` to their service configuration. + # For backwards compatibility, the default name includes the operations + # collection id, however overriding users must ensure the name binding + # is the parent resource, without the operations collection id. + # @param [String] name + # The name of the operation's parent resource. + # @param [String] filter + # The standard list filter. + # @param [Fixnum] page_size + # The standard list page size. + # @param [String] page_token + # The standard list page token. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::SpeechV1::ListOperationsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::SpeechV1::ListOperationsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_location_operations(name, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}/operations', options) + command.response_representation = Google::Apis::SpeechV1::ListOperationsResponse::Representation + command.response_class = Google::Apis::SpeechV1::ListOperationsResponse + command.params['name'] = name unless name.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # 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. + # @param [String] name + # The name of the operation resource. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # 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. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::SpeechV1::Operation] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::SpeechV1::Operation] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_operation_manual_recognition_task(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}', options) + command.response_representation = Google::Apis::SpeechV1::Operation::Representation + command.response_class = Google::Apis::SpeechV1::Operation + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + # Performs asynchronous speech recognition: receive results via the # google.longrunning.Operations interface. Returns either an # `Operation.error` or an `Operation.response` which contains