diff --git a/NetApp/.OwlBot.yaml b/NetApp/.OwlBot.yaml
new file mode 100644
index 00000000000..bc14d368a51
--- /dev/null
+++ b/NetApp/.OwlBot.yaml
@@ -0,0 +1,4 @@
+deep-copy-regex:
+ - source: /google/cloud/netapp/(v1)/.*-php/(.*)
+ dest: /owl-bot-staging/NetApp/$1/$2
+api-name: NetApp
diff --git a/NetApp/.gitattributes b/NetApp/.gitattributes
new file mode 100644
index 00000000000..8119e7fcc1b
--- /dev/null
+++ b/NetApp/.gitattributes
@@ -0,0 +1,8 @@
+/*.xml.dist export-ignore
+/.OwlBot.yaml export-ignore
+/.github export-ignore
+/.repo-metadata.json export-ignore
+/owlbot.py export-ignore
+/src/**/gapic_metadata.json export-ignore
+/samples export-ignore
+/tests export-ignore
diff --git a/NetApp/.github/pull_request_template.md b/NetApp/.github/pull_request_template.md
new file mode 100644
index 00000000000..1f4cc63145d
--- /dev/null
+++ b/NetApp/.github/pull_request_template.md
@@ -0,0 +1,24 @@
+**PLEASE READ THIS ENTIRE MESSAGE**
+
+Hello, and thank you for your contribution! Please note that this repository is
+a read-only split of `googleapis/google-cloud-php`. As such, we are
+unable to accept pull requests to this repository.
+
+We welcome your pull request and would be happy to consider it for inclusion in
+our library if you follow these steps:
+
+* Clone the parent client library repository:
+
+```sh
+$ git clone git@github.com:googleapis/google-cloud-php.git
+```
+
+* Move your changes into the correct location in that library. Library code
+belongs in `NetApp/src`, and tests in `NetApp/tests`.
+
+* Push the changes in a new branch to a fork, and open a new pull request
+[here](https://github.com/googleapis/google-cloud-php).
+
+Thanks again, and we look forward to seeing your proposed change!
+
+The Google Cloud PHP team
diff --git a/NetApp/.repo-metadata.json b/NetApp/.repo-metadata.json
new file mode 100644
index 00000000000..4a2ebf1c412
--- /dev/null
+++ b/NetApp/.repo-metadata.json
@@ -0,0 +1,8 @@
+{
+ "language": "php",
+ "distribution_name": "google/cloud-netapp",
+ "release_level": "preview",
+ "client_documentation": "https://cloud.google.com/php/docs/reference/cloud-netapp/latest",
+ "library_type": "GAPIC_AUTO",
+ "api_shortname": "netapp"
+}
diff --git a/NetApp/CONTRIBUTING.md b/NetApp/CONTRIBUTING.md
new file mode 100644
index 00000000000..76ea811cacd
--- /dev/null
+++ b/NetApp/CONTRIBUTING.md
@@ -0,0 +1,10 @@
+# How to Contribute
+
+We'd love to accept your patches and contributions to this project. We accept
+and review pull requests against the main
+[Google Cloud PHP](https://github.com/googleapis/google-cloud-php)
+repository, which contains all of our client libraries. You will also need to
+sign a Contributor License Agreement. For more details about how to contribute,
+see the
+[CONTRIBUTING.md](https://github.com/googleapis/google-cloud-php/blob/main/CONTRIBUTING.md)
+file in the main Google Cloud PHP repository.
diff --git a/NetApp/LICENSE b/NetApp/LICENSE
new file mode 100644
index 00000000000..8f71f43fee3
--- /dev/null
+++ b/NetApp/LICENSE
@@ -0,0 +1,202 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright {yyyy} {name of copyright owner}
+
+ 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.
+
diff --git a/NetApp/README.md b/NetApp/README.md
new file mode 100644
index 00000000000..48d2a90317b
--- /dev/null
+++ b/NetApp/README.md
@@ -0,0 +1,45 @@
+# Google Cloud Net App for PHP
+
+> Idiomatic PHP client for [Google Cloud Net App](https://cloud.google.com/netapp).
+
+[![Latest Stable Version](https://poser.pugx.org/google/cloud-netapp/v/stable)](https://packagist.org/packages/google/cloud-netapp) [![Packagist](https://img.shields.io/packagist/dm/google/cloud-netapp.svg)](https://packagist.org/packages/google/cloud-netapp)
+
+* [API documentation](https://cloud.google.com/php/docs/reference/cloud-netapp/latest)
+
+**NOTE:** This repository is part of [Google Cloud PHP](https://github.com/googleapis/google-cloud-php). Any
+support requests, bug reports, or development contributions should be directed to
+that project.
+
+### Installation
+
+To begin, install the preferred dependency manager for PHP, [Composer](https://getcomposer.org/).
+
+Now, install this component:
+
+```sh
+$ composer require google/cloud-netapp
+```
+
+> Browse the complete list of [Google Cloud APIs](https://cloud.google.com/php/docs/reference)
+> for PHP
+
+This component supports both REST over HTTP/1.1 and gRPC. In order to take advantage of the benefits
+offered by gRPC (such as streaming methods) please see our
+[gRPC installation guide](https://cloud.google.com/php/grpc).
+
+### Authentication
+
+Please see our [Authentication guide](https://github.com/googleapis/google-cloud-php/blob/main/AUTHENTICATION.md) for more information
+on authenticating your client. Once authenticated, you'll be ready to start making requests.
+
+### Sample
+
+See the [samples directory](https://github.com/googleapis/google-cloud-php-netapp/tree/main/samples) for a canonical list of samples.
+
+### Version
+
+This component is considered alpha. As such, it is still a work-in-progress and is more likely to get backwards-incompatible updates.
+
+### Next Steps
+
+1. Understand the [official documentation](https://cloud.google.com/netapp/volumes/docs/discover/overview).
diff --git a/NetApp/VERSION b/NetApp/VERSION
new file mode 100644
index 00000000000..77d6f4ca237
--- /dev/null
+++ b/NetApp/VERSION
@@ -0,0 +1 @@
+0.0.0
diff --git a/NetApp/composer.json b/NetApp/composer.json
new file mode 100644
index 00000000000..f1e9c29eb98
--- /dev/null
+++ b/NetApp/composer.json
@@ -0,0 +1,30 @@
+{
+ "name": "google/cloud-netapp",
+ "description": "Google Cloud Net App Client for PHP",
+ "license": "Apache-2.0",
+ "minimum-stability": "stable",
+ "autoload": {
+ "psr-4": {
+ "Google\\Cloud\\NetApp\\": "src",
+ "GPBMetadata\\Google\\Cloud\\Netapp\\": "metadata"
+ }
+ },
+ "extra": {
+ "component": {
+ "id": "cloud-netapp",
+ "path": "NetApp",
+ "target": "googleapis/google-cloud-php-netapp"
+ }
+ },
+ "require": {
+ "php": ">=7.4",
+ "google/gax": "^1.22.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
+ },
+ "suggest": {
+ "ext-grpc": "Enables use of gRPC, a universal high-performance RPC framework created by Google.",
+ "ext-protobuf": "Provides a significant increase in throughput over the pure PHP protobuf implementation. See https://cloud.google.com/php/grpc for installation instructions."
+ }
+}
diff --git a/NetApp/metadata/V1/ActiveDirectory.php b/NetApp/metadata/V1/ActiveDirectory.php
new file mode 100644
index 00000000000..dad5f1593ea
Binary files /dev/null and b/NetApp/metadata/V1/ActiveDirectory.php differ
diff --git a/NetApp/metadata/V1/CloudNetappService.php b/NetApp/metadata/V1/CloudNetappService.php
new file mode 100644
index 00000000000..91fc901f035
--- /dev/null
+++ b/NetApp/metadata/V1/CloudNetappService.php
@@ -0,0 +1,111 @@
+internalAddGeneratedFile(
+ '
+D
+1google/cloud/netapp/v1/cloud_netapp_service.protogoogle.cloud.netapp.v1google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.proto-google/cloud/netapp/v1/active_directory.proto google/cloud/netapp/v1/kms.proto(google/cloud/netapp/v1/replication.proto%google/cloud/netapp/v1/snapshot.proto)google/cloud/netapp/v1/storage_pool.proto#google/cloud/netapp/v1/volume.proto#google/longrunning/operations.protogoogle/protobuf/empty.protogoogle/protobuf/timestamp.proto"
+OperationMetadata4
+create_time (2.google.protobuf.TimestampBA1
+end_time (2.google.protobuf.TimestampBA
+target ( BA
+verb ( BA
+status_message ( BA#
+requested_cancellation (BA
+api_version ( BA2;
+NetApp
+ListStoragePools/.google.cloud.netapp.v1.ListStoragePoolsRequest0.google.cloud.netapp.v1.ListStoragePoolsResponse"A20/v1/{parent=projects/*/locations/*}/storagePoolsAparent
+CreateStoragePool0.google.cloud.netapp.v1.CreateStoragePoolRequest.google.longrunning.Operation"@"0/v1/{parent=projects/*/locations/*}/storagePools:storage_poolA#parent,storage_pool,storage_pool_idA
+StoragePoolOperationMetadata
+GetStoragePool-.google.cloud.netapp.v1.GetStoragePoolRequest#.google.cloud.netapp.v1.StoragePool"?20/v1/{name=projects/*/locations/*/storagePools/*}Aname
+UpdateStoragePool0.google.cloud.netapp.v1.UpdateStoragePoolRequest.google.longrunning.Operation"M2=/v1/{storage_pool.name=projects/*/locations/*/storagePools/*}:storage_poolAstorage_pool,update_maskA
+StoragePoolOperationMetadata
+DeleteStoragePool0.google.cloud.netapp.v1.DeleteStoragePoolRequest.google.longrunning.Operation"l2*0/v1/{name=projects/*/locations/*/storagePools/*}AnameA*
+google.protobuf.EmptyOperationMetadata
+ListVolumes*.google.cloud.netapp.v1.ListVolumesRequest+.google.cloud.netapp.v1.ListVolumesResponse"<-+/v1/{parent=projects/*/locations/*}/volumesAparent
+ GetVolume(.google.cloud.netapp.v1.GetVolumeRequest.google.cloud.netapp.v1.Volume":-+/v1/{name=projects/*/locations/*/volumes/*}Aname
+CreateVolume+.google.cloud.netapp.v1.CreateVolumeRequest.google.longrunning.Operation"s5"+/v1/{parent=projects/*/locations/*}/volumes:volumeAparent,volume,volume_idA
+VolumeOperationMetadata
+UpdateVolume+.google.cloud.netapp.v1.UpdateVolumeRequest.google.longrunning.Operation"u<22/v1/{volume.name=projects/*/locations/*/volumes/*}:volumeAvolume,update_maskA
+VolumeOperationMetadata
+DeleteVolume+.google.cloud.netapp.v1.DeleteVolumeRequest.google.longrunning.Operation"g-*+/v1/{name=projects/*/locations/*/volumes/*}AnameA*
+google.protobuf.EmptyOperationMetadata
+RevertVolume+.google.cloud.netapp.v1.RevertVolumeRequest.google.longrunning.Operation"[7"2/v1/{name=projects/*/locations/*/volumes/*}:revert:*A
+VolumeOperationMetadata
+
ListSnapshots,.google.cloud.netapp.v1.ListSnapshotsRequest-.google.cloud.netapp.v1.ListSnapshotsResponse"H97/v1/{parent=projects/*/locations/*/volumes/*}/snapshotsAparent
+GetSnapshot*.google.cloud.netapp.v1.GetSnapshotRequest .google.cloud.netapp.v1.Snapshot"F97/v1/{name=projects/*/locations/*/volumes/*/snapshots/*}Aname
+CreateSnapshot-.google.cloud.netapp.v1.CreateSnapshotRequest.google.longrunning.Operation"C"7/v1/{parent=projects/*/locations/*/volumes/*}/snapshots:snapshotAparent,snapshot,snapshot_idA
+SnapshotOperationMetadata
+DeleteSnapshot-.google.cloud.netapp.v1.DeleteSnapshotRequest.google.longrunning.Operation"s9*7/v1/{name=projects/*/locations/*/volumes/*/snapshots/*}AnameA*
+google.protobuf.EmptyOperationMetadata
+UpdateSnapshot-.google.cloud.netapp.v1.UpdateSnapshotRequest.google.longrunning.Operation"L2@/v1/{snapshot.name=projects/*/locations/*/volumes/*/snapshots/*}:snapshotAsnapshot,update_maskA
+SnapshotOperationMetadata
+ListActiveDirectories4.google.cloud.netapp.v1.ListActiveDirectoriesRequest5.google.cloud.netapp.v1.ListActiveDirectoriesResponse"F75/v1/{parent=projects/*/locations/*}/activeDirectoriesAparent
+GetActiveDirectory1.google.cloud.netapp.v1.GetActiveDirectoryRequest\'.google.cloud.netapp.v1.ActiveDirectory"D75/v1/{name=projects/*/locations/*/activeDirectories/*}Aname
+CreateActiveDirectory4.google.cloud.netapp.v1.CreateActiveDirectoryRequest.google.longrunning.Operation"I"5/v1/{parent=projects/*/locations/*}/activeDirectories:active_directoryA+parent,active_directory,active_directory_idA$
+ActiveDirectoryOperationMetadata
+UpdateActiveDirectory4.google.cloud.netapp.v1.UpdateActiveDirectoryRequest.google.longrunning.Operation"Z2F/v1/{active_directory.name=projects/*/locations/*/activeDirectories/*}:active_directoryAactive_directory,update_maskA$
+ActiveDirectoryOperationMetadata
+DeleteActiveDirectory4.google.cloud.netapp.v1.DeleteActiveDirectoryRequest.google.longrunning.Operation"q7*5/v1/{name=projects/*/locations/*/activeDirectories/*}AnameA*
+google.protobuf.EmptyOperationMetadata
+ListKmsConfigs-.google.cloud.netapp.v1.ListKmsConfigsRequest..google.cloud.netapp.v1.ListKmsConfigsResponse"?0./v1/{parent=projects/*/locations/*}/kmsConfigsAparent
+CreateKmsConfig..google.cloud.netapp.v1.CreateKmsConfigRequest.google.longrunning.Operation"<"./v1/{parent=projects/*/locations/*}/kmsConfigs:
+kms_configAparent,kms_config,kms_config_idA
+ KmsConfigOperationMetadata
+GetKmsConfig+.google.cloud.netapp.v1.GetKmsConfigRequest!.google.cloud.netapp.v1.KmsConfig"=0./v1/{name=projects/*/locations/*/kmsConfigs/*}Aname
+UpdateKmsConfig..google.cloud.netapp.v1.UpdateKmsConfigRequest.google.longrunning.Operation"G29/v1/{kms_config.name=projects/*/locations/*/kmsConfigs/*}:
+kms_configAkms_config,update_maskA
+ KmsConfigOperationMetadata
+EncryptVolumes-.google.cloud.netapp.v1.EncryptVolumesRequest.google.longrunning.Operation"b;"6/v1/{name=projects/*/locations/*/kmsConfigs/*}:encrypt:*A
+ KmsConfigOperationMetadata
+VerifyKmsConfig..google.cloud.netapp.v1.VerifyKmsConfigRequest/.google.cloud.netapp.v1.VerifyKmsConfigResponse"@:"5/v1/{name=projects/*/locations/*/kmsConfigs/*}:verify:*
+DeleteKmsConfig..google.cloud.netapp.v1.DeleteKmsConfigRequest.google.longrunning.Operation"j0*./v1/{name=projects/*/locations/*/kmsConfigs/*}AnameA*
+google.protobuf.EmptyOperationMetadata
+ListReplications/.google.cloud.netapp.v1.ListReplicationsRequest0.google.cloud.netapp.v1.ListReplicationsResponse"K<:/v1/{parent=projects/*/locations/*/volumes/*}/replicationsAparent
+GetReplication-.google.cloud.netapp.v1.GetReplicationRequest#.google.cloud.netapp.v1.Replication"I<:/v1/{name=projects/*/locations/*/volumes/*/replications/*}Aname
+CreateReplication0.google.cloud.netapp.v1.CreateReplicationRequest.google.longrunning.Operation"I":/v1/{parent=projects/*/locations/*/volumes/*}/replications:replicationA!parent,replication,replication_idA
+ReplicationOperationMetadata
+DeleteReplication0.google.cloud.netapp.v1.DeleteReplicationRequest.google.longrunning.Operation"v<*:/v1/{name=projects/*/locations/*/volumes/*/replications/*}AnameA*
+google.protobuf.EmptyOperationMetadata
+UpdateReplication0.google.cloud.netapp.v1.UpdateReplicationRequest.google.longrunning.Operation"U2F/v1/{replication.name=projects/*/locations/*/volumes/*/replications/*}:replicationAreplication,update_maskA
+ReplicationOperationMetadata
+StopReplication..google.cloud.netapp.v1.StopReplicationRequest.google.longrunning.Operation"mD"?/v1/{name=projects/*/locations/*/volumes/*/replications/*}:stop:*A
+ReplicationOperationMetadata
+ResumeReplication0.google.cloud.netapp.v1.ResumeReplicationRequest.google.longrunning.Operation"oF"A/v1/{name=projects/*/locations/*/volumes/*/replications/*}:resume:*A
+ReplicationOperationMetadata
+ReverseReplicationDirection:.google.cloud.netapp.v1.ReverseReplicationDirectionRequest.google.longrunning.Operation"yP"K/v1/{name=projects/*/locations/*/volumes/*/replications/*}:reverseDirection:*A
+ReplicationOperationMetadataIAnetapp.googleapis.comA.https://www.googleapis.com/auth/cloud-platformB
+com.google.cloud.netapp.v1BCloudNetappServiceProtoPZ2cloud.google.com/go/netapp/apiv1/netapppb;netapppbGoogle.Cloud.NetApp.V1Google\\Cloud\\NetApp\\V1Google::Cloud::NetApp::V1AN
+compute.googleapis.com/Network,projects/{project}/global/networks/{network}bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/NetApp/metadata/V1/Common.php b/NetApp/metadata/V1/Common.php
new file mode 100644
index 00000000000..b7d17cec3d2
Binary files /dev/null and b/NetApp/metadata/V1/Common.php differ
diff --git a/NetApp/metadata/V1/Kms.php b/NetApp/metadata/V1/Kms.php
new file mode 100644
index 00000000000..1af0813b9ae
Binary files /dev/null and b/NetApp/metadata/V1/Kms.php differ
diff --git a/NetApp/metadata/V1/Replication.php b/NetApp/metadata/V1/Replication.php
new file mode 100644
index 00000000000..8e68f7e4711
Binary files /dev/null and b/NetApp/metadata/V1/Replication.php differ
diff --git a/NetApp/metadata/V1/Snapshot.php b/NetApp/metadata/V1/Snapshot.php
new file mode 100644
index 00000000000..141c067b6a8
Binary files /dev/null and b/NetApp/metadata/V1/Snapshot.php differ
diff --git a/NetApp/metadata/V1/StoragePool.php b/NetApp/metadata/V1/StoragePool.php
new file mode 100644
index 00000000000..1e13c8b79c3
Binary files /dev/null and b/NetApp/metadata/V1/StoragePool.php differ
diff --git a/NetApp/metadata/V1/Volume.php b/NetApp/metadata/V1/Volume.php
new file mode 100644
index 00000000000..1b09a460143
Binary files /dev/null and b/NetApp/metadata/V1/Volume.php differ
diff --git a/NetApp/owlbot.py b/NetApp/owlbot.py
new file mode 100644
index 00000000000..832431d1288
--- /dev/null
+++ b/NetApp/owlbot.py
@@ -0,0 +1,62 @@
+# Copyright 2023 Google LLC
+#
+# 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.
+
+"""This script is used to synthesize generated parts of this library."""
+
+import logging
+from pathlib import Path
+import subprocess
+
+import synthtool as s
+from synthtool.languages import php
+from synthtool import _tracked_paths
+
+logging.basicConfig(level=logging.DEBUG)
+
+src = Path(f"../{php.STAGING_DIR}/NetApp").resolve()
+dest = Path().resolve()
+
+# Added so that we can pass copy_excludes in the owlbot_main() call
+_tracked_paths.add(src)
+
+php.owlbot_main(
+ src=src,
+ dest=dest,
+ copy_excludes=[
+ src / "**/[A-Z]*_*.php",
+ ]
+)
+
+# remove class_alias code
+s.replace(
+ "src/V*/**/*.php",
+ r"^// Adding a class alias for backwards compatibility with the previous class name.$"
+ + "\n"
+ + r"^class_alias\(.*\);$"
+ + "\n",
+ '')
+
+# format generated clients
+subprocess.run([
+ 'npm',
+ 'exec',
+ '--yes',
+ '--package=@prettier/plugin-php@^0.16',
+ '--',
+ 'prettier',
+ '**/BaseClient/*',
+ '--write',
+ '--parser=php',
+ '--single-quote',
+ '--print-width=80'])
diff --git a/NetApp/phpunit.xml.dist b/NetApp/phpunit.xml.dist
new file mode 100644
index 00000000000..ba40f6d3eb2
--- /dev/null
+++ b/NetApp/phpunit.xml.dist
@@ -0,0 +1,16 @@
+
+
+
+
+ tests/Unit
+
+
+
+
+ src
+
+ src/V[!a-zA-Z]*
+
+
+
+
diff --git a/NetApp/samples/V1/NetAppClient/create_active_directory.php b/NetApp/samples/V1/NetAppClient/create_active_directory.php
new file mode 100644
index 00000000000..709ccc8d8bb
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/create_active_directory.php
@@ -0,0 +1,120 @@
+setDomain($activeDirectoryDomain)
+ ->setDns($activeDirectoryDns)
+ ->setNetBiosPrefix($activeDirectoryNetBiosPrefix)
+ ->setUsername($activeDirectoryUsername)
+ ->setPassword($activeDirectoryPassword);
+ $request = (new CreateActiveDirectoryRequest())
+ ->setParent($formattedParent)
+ ->setActiveDirectory($activeDirectory)
+ ->setActiveDirectoryId($activeDirectoryId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->createActiveDirectory($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ActiveDirectory $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = NetAppClient::locationName('[PROJECT]', '[LOCATION]');
+ $activeDirectoryDomain = '[DOMAIN]';
+ $activeDirectoryDns = '[DNS]';
+ $activeDirectoryNetBiosPrefix = '[NET_BIOS_PREFIX]';
+ $activeDirectoryUsername = '[USERNAME]';
+ $activeDirectoryPassword = '[PASSWORD]';
+ $activeDirectoryId = '[ACTIVE_DIRECTORY_ID]';
+
+ create_active_directory_sample(
+ $formattedParent,
+ $activeDirectoryDomain,
+ $activeDirectoryDns,
+ $activeDirectoryNetBiosPrefix,
+ $activeDirectoryUsername,
+ $activeDirectoryPassword,
+ $activeDirectoryId
+ );
+}
+// [END netapp_v1_generated_NetApp_CreateActiveDirectory_sync]
diff --git a/NetApp/samples/V1/NetAppClient/create_kms_config.php b/NetApp/samples/V1/NetAppClient/create_kms_config.php
new file mode 100644
index 00000000000..0992a030a62
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/create_kms_config.php
@@ -0,0 +1,97 @@
+setCryptoKeyName($kmsConfigCryptoKeyName);
+ $request = (new CreateKmsConfigRequest())
+ ->setParent($formattedParent)
+ ->setKmsConfigId($kmsConfigId)
+ ->setKmsConfig($kmsConfig);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->createKmsConfig($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var KmsConfig $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = NetAppClient::locationName('[PROJECT]', '[LOCATION]');
+ $kmsConfigId = '[KMS_CONFIG_ID]';
+ $kmsConfigCryptoKeyName = '[CRYPTO_KEY_NAME]';
+
+ create_kms_config_sample($formattedParent, $kmsConfigId, $kmsConfigCryptoKeyName);
+}
+// [END netapp_v1_generated_NetApp_CreateKmsConfig_sync]
diff --git a/NetApp/samples/V1/NetAppClient/create_replication.php b/NetApp/samples/V1/NetAppClient/create_replication.php
new file mode 100644
index 00000000000..df56b676665
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/create_replication.php
@@ -0,0 +1,115 @@
+setStoragePool($formattedReplicationDestinationVolumeParametersStoragePool);
+ $replication = (new Replication())
+ ->setReplicationSchedule($replicationReplicationSchedule)
+ ->setDestinationVolumeParameters($replicationDestinationVolumeParameters);
+ $request = (new CreateReplicationRequest())
+ ->setParent($formattedParent)
+ ->setReplication($replication)
+ ->setReplicationId($replicationId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->createReplication($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Replication $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = NetAppClient::volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $replicationReplicationSchedule = ReplicationSchedule::REPLICATION_SCHEDULE_UNSPECIFIED;
+ $formattedReplicationDestinationVolumeParametersStoragePool = NetAppClient::storagePoolName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[STORAGE_POOL]'
+ );
+ $replicationId = '[REPLICATION_ID]';
+
+ create_replication_sample(
+ $formattedParent,
+ $replicationReplicationSchedule,
+ $formattedReplicationDestinationVolumeParametersStoragePool,
+ $replicationId
+ );
+}
+// [END netapp_v1_generated_NetApp_CreateReplication_sync]
diff --git a/NetApp/samples/V1/NetAppClient/create_snapshot.php b/NetApp/samples/V1/NetAppClient/create_snapshot.php
new file mode 100644
index 00000000000..4654fbf7e7f
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/create_snapshot.php
@@ -0,0 +1,91 @@
+setParent($formattedParent)
+ ->setSnapshot($snapshot)
+ ->setSnapshotId($snapshotId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->createSnapshot($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Snapshot $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = NetAppClient::volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $snapshotId = '[SNAPSHOT_ID]';
+
+ create_snapshot_sample($formattedParent, $snapshotId);
+}
+// [END netapp_v1_generated_NetApp_CreateSnapshot_sync]
diff --git a/NetApp/samples/V1/NetAppClient/create_storage_pool.php b/NetApp/samples/V1/NetAppClient/create_storage_pool.php
new file mode 100644
index 00000000000..a283ab1c83a
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/create_storage_pool.php
@@ -0,0 +1,113 @@
+setServiceLevel($storagePoolServiceLevel)
+ ->setCapacityGib($storagePoolCapacityGib)
+ ->setNetwork($formattedStoragePoolNetwork);
+ $request = (new CreateStoragePoolRequest())
+ ->setParent($formattedParent)
+ ->setStoragePoolId($storagePoolId)
+ ->setStoragePool($storagePool);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->createStoragePool($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var StoragePool $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = NetAppClient::locationName('[PROJECT]', '[LOCATION]');
+ $storagePoolId = '[STORAGE_POOL_ID]';
+ $storagePoolServiceLevel = ServiceLevel::SERVICE_LEVEL_UNSPECIFIED;
+ $storagePoolCapacityGib = 0;
+ $formattedStoragePoolNetwork = NetAppClient::networkName('[PROJECT]', '[NETWORK]');
+
+ create_storage_pool_sample(
+ $formattedParent,
+ $storagePoolId,
+ $storagePoolServiceLevel,
+ $storagePoolCapacityGib,
+ $formattedStoragePoolNetwork
+ );
+}
+// [END netapp_v1_generated_NetApp_CreateStoragePool_sync]
diff --git a/NetApp/samples/V1/NetAppClient/create_volume.php b/NetApp/samples/V1/NetAppClient/create_volume.php
new file mode 100644
index 00000000000..385d2864057
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/create_volume.php
@@ -0,0 +1,122 @@
+setShareName($volumeShareName)
+ ->setStoragePool($formattedVolumeStoragePool)
+ ->setCapacityGib($volumeCapacityGib)
+ ->setProtocols($volumeProtocols);
+ $request = (new CreateVolumeRequest())
+ ->setParent($formattedParent)
+ ->setVolumeId($volumeId)
+ ->setVolume($volume);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->createVolume($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Volume $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = NetAppClient::locationName('[PROJECT]', '[LOCATION]');
+ $volumeId = '[VOLUME_ID]';
+ $volumeShareName = '[SHARE_NAME]';
+ $formattedVolumeStoragePool = NetAppClient::storagePoolName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[STORAGE_POOL]'
+ );
+ $volumeCapacityGib = 0;
+ $volumeProtocolsElement = Protocols::PROTOCOLS_UNSPECIFIED;
+
+ create_volume_sample(
+ $formattedParent,
+ $volumeId,
+ $volumeShareName,
+ $formattedVolumeStoragePool,
+ $volumeCapacityGib,
+ $volumeProtocolsElement
+ );
+}
+// [END netapp_v1_generated_NetApp_CreateVolume_sync]
diff --git a/NetApp/samples/V1/NetAppClient/delete_active_directory.php b/NetApp/samples/V1/NetAppClient/delete_active_directory.php
new file mode 100644
index 00000000000..4403ba3fb93
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/delete_active_directory.php
@@ -0,0 +1,80 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->deleteActiveDirectory($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::activeDirectoryName('[PROJECT]', '[LOCATION]', '[ACTIVE_DIRECTORY]');
+
+ delete_active_directory_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_DeleteActiveDirectory_sync]
diff --git a/NetApp/samples/V1/NetAppClient/delete_kms_config.php b/NetApp/samples/V1/NetAppClient/delete_kms_config.php
new file mode 100644
index 00000000000..012e49ba3d2
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/delete_kms_config.php
@@ -0,0 +1,80 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->deleteKmsConfig($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::kmsConfigName('[PROJECT]', '[LOCATION]', '[KMS_CONFIG]');
+
+ delete_kms_config_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_DeleteKmsConfig_sync]
diff --git a/NetApp/samples/V1/NetAppClient/delete_replication.php b/NetApp/samples/V1/NetAppClient/delete_replication.php
new file mode 100644
index 00000000000..bb6672a16d8
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/delete_replication.php
@@ -0,0 +1,86 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->deleteReplication($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::replicationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[VOLUME]',
+ '[REPLICATION]'
+ );
+
+ delete_replication_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_DeleteReplication_sync]
diff --git a/NetApp/samples/V1/NetAppClient/delete_snapshot.php b/NetApp/samples/V1/NetAppClient/delete_snapshot.php
new file mode 100644
index 00000000000..ea8c9ee51ea
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/delete_snapshot.php
@@ -0,0 +1,81 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->deleteSnapshot($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::snapshotName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[SNAPSHOT]');
+
+ delete_snapshot_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_DeleteSnapshot_sync]
diff --git a/NetApp/samples/V1/NetAppClient/delete_storage_pool.php b/NetApp/samples/V1/NetAppClient/delete_storage_pool.php
new file mode 100644
index 00000000000..340d65ee113
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/delete_storage_pool.php
@@ -0,0 +1,80 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->deleteStoragePool($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+
+ delete_storage_pool_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_DeleteStoragePool_sync]
diff --git a/NetApp/samples/V1/NetAppClient/delete_volume.php b/NetApp/samples/V1/NetAppClient/delete_volume.php
new file mode 100644
index 00000000000..7db3653c7c7
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/delete_volume.php
@@ -0,0 +1,80 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->deleteVolume($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+
+ delete_volume_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_DeleteVolume_sync]
diff --git a/NetApp/samples/V1/NetAppClient/encrypt_volumes.php b/NetApp/samples/V1/NetAppClient/encrypt_volumes.php
new file mode 100644
index 00000000000..88d73492250
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/encrypt_volumes.php
@@ -0,0 +1,84 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->encryptVolumes($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var KmsConfig $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::kmsConfigName('[PROJECT]', '[LOCATION]', '[KMS_CONFIG]');
+
+ encrypt_volumes_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_EncryptVolumes_sync]
diff --git a/NetApp/samples/V1/NetAppClient/get_active_directory.php b/NetApp/samples/V1/NetAppClient/get_active_directory.php
new file mode 100644
index 00000000000..4d2915b14da
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/get_active_directory.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ActiveDirectory $response */
+ $response = $netAppClient->getActiveDirectory($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::activeDirectoryName('[PROJECT]', '[LOCATION]', '[ACTIVE_DIRECTORY]');
+
+ get_active_directory_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_GetActiveDirectory_sync]
diff --git a/NetApp/samples/V1/NetAppClient/get_kms_config.php b/NetApp/samples/V1/NetAppClient/get_kms_config.php
new file mode 100644
index 00000000000..5049650c14b
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/get_kms_config.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var KmsConfig $response */
+ $response = $netAppClient->getKmsConfig($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::kmsConfigName('[PROJECT]', '[LOCATION]', '[KMS_CONFIG]');
+
+ get_kms_config_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_GetKmsConfig_sync]
diff --git a/NetApp/samples/V1/NetAppClient/get_location.php b/NetApp/samples/V1/NetAppClient/get_location.php
new file mode 100644
index 00000000000..88c176bed8e
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/get_location.php
@@ -0,0 +1,57 @@
+getLocation($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END netapp_v1_generated_NetApp_GetLocation_sync]
diff --git a/NetApp/samples/V1/NetAppClient/get_replication.php b/NetApp/samples/V1/NetAppClient/get_replication.php
new file mode 100644
index 00000000000..35b35374311
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/get_replication.php
@@ -0,0 +1,77 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Replication $response */
+ $response = $netAppClient->getReplication($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::replicationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[VOLUME]',
+ '[REPLICATION]'
+ );
+
+ get_replication_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_GetReplication_sync]
diff --git a/NetApp/samples/V1/NetAppClient/get_snapshot.php b/NetApp/samples/V1/NetAppClient/get_snapshot.php
new file mode 100644
index 00000000000..b433f45366f
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/get_snapshot.php
@@ -0,0 +1,72 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Snapshot $response */
+ $response = $netAppClient->getSnapshot($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::snapshotName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[SNAPSHOT]');
+
+ get_snapshot_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_GetSnapshot_sync]
diff --git a/NetApp/samples/V1/NetAppClient/get_storage_pool.php b/NetApp/samples/V1/NetAppClient/get_storage_pool.php
new file mode 100644
index 00000000000..7e7ac801710
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/get_storage_pool.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var StoragePool $response */
+ $response = $netAppClient->getStoragePool($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+
+ get_storage_pool_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_GetStoragePool_sync]
diff --git a/NetApp/samples/V1/NetAppClient/get_volume.php b/NetApp/samples/V1/NetAppClient/get_volume.php
new file mode 100644
index 00000000000..0016a497269
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/get_volume.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Volume $response */
+ $response = $netAppClient->getVolume($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+
+ get_volume_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_GetVolume_sync]
diff --git a/NetApp/samples/V1/NetAppClient/list_active_directories.php b/NetApp/samples/V1/NetAppClient/list_active_directories.php
new file mode 100644
index 00000000000..7778c858e71
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/list_active_directories.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $netAppClient->listActiveDirectories($request);
+
+ /** @var ActiveDirectory $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = NetAppClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_active_directories_sample($formattedParent);
+}
+// [END netapp_v1_generated_NetApp_ListActiveDirectories_sync]
diff --git a/NetApp/samples/V1/NetAppClient/list_kms_configs.php b/NetApp/samples/V1/NetAppClient/list_kms_configs.php
new file mode 100644
index 00000000000..7cd8aab1412
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/list_kms_configs.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $netAppClient->listKmsConfigs($request);
+
+ /** @var KmsConfig $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = NetAppClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_kms_configs_sample($formattedParent);
+}
+// [END netapp_v1_generated_NetApp_ListKmsConfigs_sync]
diff --git a/NetApp/samples/V1/NetAppClient/list_locations.php b/NetApp/samples/V1/NetAppClient/list_locations.php
new file mode 100644
index 00000000000..d500f920244
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/list_locations.php
@@ -0,0 +1,62 @@
+listLocations($request);
+
+ /** @var Location $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END netapp_v1_generated_NetApp_ListLocations_sync]
diff --git a/NetApp/samples/V1/NetAppClient/list_replications.php b/NetApp/samples/V1/NetAppClient/list_replications.php
new file mode 100644
index 00000000000..f03ed59accc
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/list_replications.php
@@ -0,0 +1,78 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $netAppClient->listReplications($request);
+
+ /** @var Replication $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = NetAppClient::volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+
+ list_replications_sample($formattedParent);
+}
+// [END netapp_v1_generated_NetApp_ListReplications_sync]
diff --git a/NetApp/samples/V1/NetAppClient/list_snapshots.php b/NetApp/samples/V1/NetAppClient/list_snapshots.php
new file mode 100644
index 00000000000..cf85233a72a
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/list_snapshots.php
@@ -0,0 +1,78 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $netAppClient->listSnapshots($request);
+
+ /** @var Snapshot $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = NetAppClient::volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+
+ list_snapshots_sample($formattedParent);
+}
+// [END netapp_v1_generated_NetApp_ListSnapshots_sync]
diff --git a/NetApp/samples/V1/NetAppClient/list_storage_pools.php b/NetApp/samples/V1/NetAppClient/list_storage_pools.php
new file mode 100644
index 00000000000..ea073d7afe2
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/list_storage_pools.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $netAppClient->listStoragePools($request);
+
+ /** @var StoragePool $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = NetAppClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_storage_pools_sample($formattedParent);
+}
+// [END netapp_v1_generated_NetApp_ListStoragePools_sync]
diff --git a/NetApp/samples/V1/NetAppClient/list_volumes.php b/NetApp/samples/V1/NetAppClient/list_volumes.php
new file mode 100644
index 00000000000..a70ad173b97
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/list_volumes.php
@@ -0,0 +1,76 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $netAppClient->listVolumes($request);
+
+ /** @var Volume $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = NetAppClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_volumes_sample($formattedParent);
+}
+// [END netapp_v1_generated_NetApp_ListVolumes_sync]
diff --git a/NetApp/samples/V1/NetAppClient/resume_replication.php b/NetApp/samples/V1/NetAppClient/resume_replication.php
new file mode 100644
index 00000000000..fdfa62ea68b
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/resume_replication.php
@@ -0,0 +1,89 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->resumeReplication($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Replication $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::replicationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[VOLUME]',
+ '[REPLICATION]'
+ );
+
+ resume_replication_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_ResumeReplication_sync]
diff --git a/NetApp/samples/V1/NetAppClient/reverse_replication_direction.php b/NetApp/samples/V1/NetAppClient/reverse_replication_direction.php
new file mode 100644
index 00000000000..94dd276ceab
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/reverse_replication_direction.php
@@ -0,0 +1,90 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->reverseReplicationDirection($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Replication $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::replicationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[VOLUME]',
+ '[REPLICATION]'
+ );
+
+ reverse_replication_direction_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_ReverseReplicationDirection_sync]
diff --git a/NetApp/samples/V1/NetAppClient/revert_volume.php b/NetApp/samples/V1/NetAppClient/revert_volume.php
new file mode 100644
index 00000000000..ad3a82eb4ce
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/revert_volume.php
@@ -0,0 +1,91 @@
+setName($formattedName)
+ ->setSnapshotId($snapshotId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->revertVolume($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Volume $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $snapshotId = '[SNAPSHOT_ID]';
+
+ revert_volume_sample($formattedName, $snapshotId);
+}
+// [END netapp_v1_generated_NetApp_RevertVolume_sync]
diff --git a/NetApp/samples/V1/NetAppClient/stop_replication.php b/NetApp/samples/V1/NetAppClient/stop_replication.php
new file mode 100644
index 00000000000..7d39fd76bf1
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/stop_replication.php
@@ -0,0 +1,89 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->stopReplication($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Replication $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::replicationName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[VOLUME]',
+ '[REPLICATION]'
+ );
+
+ stop_replication_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_StopReplication_sync]
diff --git a/NetApp/samples/V1/NetAppClient/update_active_directory.php b/NetApp/samples/V1/NetAppClient/update_active_directory.php
new file mode 100644
index 00000000000..385e9194683
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/update_active_directory.php
@@ -0,0 +1,111 @@
+setDomain($activeDirectoryDomain)
+ ->setDns($activeDirectoryDns)
+ ->setNetBiosPrefix($activeDirectoryNetBiosPrefix)
+ ->setUsername($activeDirectoryUsername)
+ ->setPassword($activeDirectoryPassword);
+ $request = (new UpdateActiveDirectoryRequest())
+ ->setUpdateMask($updateMask)
+ ->setActiveDirectory($activeDirectory);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->updateActiveDirectory($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ActiveDirectory $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $activeDirectoryDomain = '[DOMAIN]';
+ $activeDirectoryDns = '[DNS]';
+ $activeDirectoryNetBiosPrefix = '[NET_BIOS_PREFIX]';
+ $activeDirectoryUsername = '[USERNAME]';
+ $activeDirectoryPassword = '[PASSWORD]';
+
+ update_active_directory_sample(
+ $activeDirectoryDomain,
+ $activeDirectoryDns,
+ $activeDirectoryNetBiosPrefix,
+ $activeDirectoryUsername,
+ $activeDirectoryPassword
+ );
+}
+// [END netapp_v1_generated_NetApp_UpdateActiveDirectory_sync]
diff --git a/NetApp/samples/V1/NetAppClient/update_kms_config.php b/NetApp/samples/V1/NetAppClient/update_kms_config.php
new file mode 100644
index 00000000000..89bc030964f
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/update_kms_config.php
@@ -0,0 +1,88 @@
+setCryptoKeyName($kmsConfigCryptoKeyName);
+ $request = (new UpdateKmsConfigRequest())
+ ->setUpdateMask($updateMask)
+ ->setKmsConfig($kmsConfig);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->updateKmsConfig($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var KmsConfig $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $kmsConfigCryptoKeyName = '[CRYPTO_KEY_NAME]';
+
+ update_kms_config_sample($kmsConfigCryptoKeyName);
+}
+// [END netapp_v1_generated_NetApp_UpdateKmsConfig_sync]
diff --git a/NetApp/samples/V1/NetAppClient/update_replication.php b/NetApp/samples/V1/NetAppClient/update_replication.php
new file mode 100644
index 00000000000..04229e076bc
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/update_replication.php
@@ -0,0 +1,104 @@
+setStoragePool($formattedReplicationDestinationVolumeParametersStoragePool);
+ $replication = (new Replication())
+ ->setReplicationSchedule($replicationReplicationSchedule)
+ ->setDestinationVolumeParameters($replicationDestinationVolumeParameters);
+ $request = (new UpdateReplicationRequest())
+ ->setUpdateMask($updateMask)
+ ->setReplication($replication);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->updateReplication($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Replication $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $replicationReplicationSchedule = ReplicationSchedule::REPLICATION_SCHEDULE_UNSPECIFIED;
+ $formattedReplicationDestinationVolumeParametersStoragePool = NetAppClient::storagePoolName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[STORAGE_POOL]'
+ );
+
+ update_replication_sample(
+ $replicationReplicationSchedule,
+ $formattedReplicationDestinationVolumeParametersStoragePool
+ );
+}
+// [END netapp_v1_generated_NetApp_UpdateReplication_sync]
diff --git a/NetApp/samples/V1/NetAppClient/update_snapshot.php b/NetApp/samples/V1/NetAppClient/update_snapshot.php
new file mode 100644
index 00000000000..153f4913c3d
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/update_snapshot.php
@@ -0,0 +1,74 @@
+setUpdateMask($updateMask)
+ ->setSnapshot($snapshot);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->updateSnapshot($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Snapshot $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END netapp_v1_generated_NetApp_UpdateSnapshot_sync]
diff --git a/NetApp/samples/V1/NetAppClient/update_storage_pool.php b/NetApp/samples/V1/NetAppClient/update_storage_pool.php
new file mode 100644
index 00000000000..72357c047f3
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/update_storage_pool.php
@@ -0,0 +1,103 @@
+setServiceLevel($storagePoolServiceLevel)
+ ->setCapacityGib($storagePoolCapacityGib)
+ ->setNetwork($formattedStoragePoolNetwork);
+ $request = (new UpdateStoragePoolRequest())
+ ->setUpdateMask($updateMask)
+ ->setStoragePool($storagePool);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->updateStoragePool($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var StoragePool $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $storagePoolServiceLevel = ServiceLevel::SERVICE_LEVEL_UNSPECIFIED;
+ $storagePoolCapacityGib = 0;
+ $formattedStoragePoolNetwork = NetAppClient::networkName('[PROJECT]', '[NETWORK]');
+
+ update_storage_pool_sample(
+ $storagePoolServiceLevel,
+ $storagePoolCapacityGib,
+ $formattedStoragePoolNetwork
+ );
+}
+// [END netapp_v1_generated_NetApp_UpdateStoragePool_sync]
diff --git a/NetApp/samples/V1/NetAppClient/update_volume.php b/NetApp/samples/V1/NetAppClient/update_volume.php
new file mode 100644
index 00000000000..15d67b5468a
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/update_volume.php
@@ -0,0 +1,112 @@
+setShareName($volumeShareName)
+ ->setStoragePool($formattedVolumeStoragePool)
+ ->setCapacityGib($volumeCapacityGib)
+ ->setProtocols($volumeProtocols);
+ $request = (new UpdateVolumeRequest())
+ ->setUpdateMask($updateMask)
+ ->setVolume($volume);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $netAppClient->updateVolume($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Volume $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $volumeShareName = '[SHARE_NAME]';
+ $formattedVolumeStoragePool = NetAppClient::storagePoolName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[STORAGE_POOL]'
+ );
+ $volumeCapacityGib = 0;
+ $volumeProtocolsElement = Protocols::PROTOCOLS_UNSPECIFIED;
+
+ update_volume_sample(
+ $volumeShareName,
+ $formattedVolumeStoragePool,
+ $volumeCapacityGib,
+ $volumeProtocolsElement
+ );
+}
+// [END netapp_v1_generated_NetApp_UpdateVolume_sync]
diff --git a/NetApp/samples/V1/NetAppClient/verify_kms_config.php b/NetApp/samples/V1/NetAppClient/verify_kms_config.php
new file mode 100644
index 00000000000..b0bf4f44ff7
--- /dev/null
+++ b/NetApp/samples/V1/NetAppClient/verify_kms_config.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var VerifyKmsConfigResponse $response */
+ $response = $netAppClient->verifyKmsConfig($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = NetAppClient::kmsConfigName('[PROJECT]', '[LOCATION]', '[KMS_CONFIG]');
+
+ verify_kms_config_sample($formattedName);
+}
+// [END netapp_v1_generated_NetApp_VerifyKmsConfig_sync]
diff --git a/NetApp/src/V1/AccessType.php b/NetApp/src/V1/AccessType.php
new file mode 100644
index 00000000000..017de556caf
--- /dev/null
+++ b/NetApp/src/V1/AccessType.php
@@ -0,0 +1,66 @@
+google.cloud.netapp.v1.AccessType
+ */
+class AccessType
+{
+ /**
+ * Unspecified Access Type
+ *
+ * Generated from protobuf enum ACCESS_TYPE_UNSPECIFIED = 0;
+ */
+ const ACCESS_TYPE_UNSPECIFIED = 0;
+ /**
+ * Read Only
+ *
+ * Generated from protobuf enum READ_ONLY = 1;
+ */
+ const READ_ONLY = 1;
+ /**
+ * Read Write
+ *
+ * Generated from protobuf enum READ_WRITE = 2;
+ */
+ const READ_WRITE = 2;
+ /**
+ * None
+ *
+ * Generated from protobuf enum READ_NONE = 3;
+ */
+ const READ_NONE = 3;
+
+ private static $valueToName = [
+ self::ACCESS_TYPE_UNSPECIFIED => 'ACCESS_TYPE_UNSPECIFIED',
+ self::READ_ONLY => 'READ_ONLY',
+ self::READ_WRITE => 'READ_WRITE',
+ self::READ_NONE => 'READ_NONE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/NetApp/src/V1/ActiveDirectory.php b/NetApp/src/V1/ActiveDirectory.php
new file mode 100644
index 00000000000..fa0bb07443b
--- /dev/null
+++ b/NetApp/src/V1/ActiveDirectory.php
@@ -0,0 +1,789 @@
+google.cloud.netapp.v1.ActiveDirectory
+ */
+class ActiveDirectory extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The resource name of the active directory.
+ * Format:
+ * `projects/{project_number}/locations/{location_id}/activeDirectories/{active_directory_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. Create time of the active directory.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The state of the AD.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ActiveDirectory.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Required. Name of the Active Directory domain
+ *
+ * Generated from protobuf field string domain = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $domain = '';
+ /**
+ * The Active Directory site the service will limit Domain Controller
+ * discovery too.
+ *
+ * Generated from protobuf field string site = 5;
+ */
+ protected $site = '';
+ /**
+ * Required. Comma separated list of DNS server IP addresses for the Active
+ * Directory domain.
+ *
+ * Generated from protobuf field string dns = 6 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $dns = '';
+ /**
+ * Required. NetBIOSPrefix is used as a prefix for SMB server name.
+ *
+ * Generated from protobuf field string net_bios_prefix = 7 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $net_bios_prefix = '';
+ /**
+ * The Organizational Unit (OU) within the Windows Active Directory the user
+ * belongs to.
+ *
+ * Generated from protobuf field string organizational_unit = 8;
+ */
+ protected $organizational_unit = '';
+ /**
+ * If enabled, AES encryption will be enabled for SMB communication.
+ *
+ * Generated from protobuf field bool aes_encryption = 9;
+ */
+ protected $aes_encryption = false;
+ /**
+ * Required. Username of the Active Directory domain administrator.
+ *
+ * Generated from protobuf field string username = 10 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $username = '';
+ /**
+ * Required. Password of the Active Directory domain administrator.
+ *
+ * Generated from protobuf field string password = 11 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $password = '';
+ /**
+ * Users to be added to the Built-in Backup Operator active directory group.
+ *
+ * Generated from protobuf field repeated string backup_operators = 12;
+ */
+ private $backup_operators;
+ /**
+ * Domain users to be given the SeSecurityPrivilege.
+ *
+ * Generated from protobuf field repeated string security_operators = 13;
+ */
+ private $security_operators;
+ /**
+ * Name of the active directory machine. This optional parameter is used only
+ * while creating kerberos volume
+ *
+ * Generated from protobuf field string kdc_hostname = 14;
+ */
+ protected $kdc_hostname = '';
+ /**
+ * KDC server IP address for the active directory machine.
+ *
+ * Generated from protobuf field string kdc_ip = 15;
+ */
+ protected $kdc_ip = '';
+ /**
+ * If enabled, will allow access to local users and LDAP users. If access is
+ * needed for only LDAP users, it has to be disabled.
+ *
+ * Generated from protobuf field bool nfs_users_with_ldap = 16;
+ */
+ protected $nfs_users_with_ldap = false;
+ /**
+ * Description of the active directory.
+ *
+ * Generated from protobuf field string description = 17;
+ */
+ protected $description = '';
+ /**
+ * Specifies whether or not the LDAP traffic needs to be signed.
+ *
+ * Generated from protobuf field bool ldap_signing = 18;
+ */
+ protected $ldap_signing = false;
+ /**
+ * If enabled, traffic between the SMB server to Domain Controller (DC) will
+ * be encrypted.
+ *
+ * Generated from protobuf field bool encrypt_dc_connections = 19;
+ */
+ protected $encrypt_dc_connections = false;
+ /**
+ * Labels for the active directory.
+ *
+ * Generated from protobuf field map labels = 20;
+ */
+ private $labels;
+ /**
+ * Output only. The state details of the Active Directory.
+ *
+ * Generated from protobuf field string state_details = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state_details = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The resource name of the active directory.
+ * Format:
+ * `projects/{project_number}/locations/{location_id}/activeDirectories/{active_directory_id}`.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Create time of the active directory.
+ * @type int $state
+ * Output only. The state of the AD.
+ * @type string $domain
+ * Required. Name of the Active Directory domain
+ * @type string $site
+ * The Active Directory site the service will limit Domain Controller
+ * discovery too.
+ * @type string $dns
+ * Required. Comma separated list of DNS server IP addresses for the Active
+ * Directory domain.
+ * @type string $net_bios_prefix
+ * Required. NetBIOSPrefix is used as a prefix for SMB server name.
+ * @type string $organizational_unit
+ * The Organizational Unit (OU) within the Windows Active Directory the user
+ * belongs to.
+ * @type bool $aes_encryption
+ * If enabled, AES encryption will be enabled for SMB communication.
+ * @type string $username
+ * Required. Username of the Active Directory domain administrator.
+ * @type string $password
+ * Required. Password of the Active Directory domain administrator.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $backup_operators
+ * Users to be added to the Built-in Backup Operator active directory group.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $security_operators
+ * Domain users to be given the SeSecurityPrivilege.
+ * @type string $kdc_hostname
+ * Name of the active directory machine. This optional parameter is used only
+ * while creating kerberos volume
+ * @type string $kdc_ip
+ * KDC server IP address for the active directory machine.
+ * @type bool $nfs_users_with_ldap
+ * If enabled, will allow access to local users and LDAP users. If access is
+ * needed for only LDAP users, it has to be disabled.
+ * @type string $description
+ * Description of the active directory.
+ * @type bool $ldap_signing
+ * Specifies whether or not the LDAP traffic needs to be signed.
+ * @type bool $encrypt_dc_connections
+ * If enabled, traffic between the SMB server to Domain Controller (DC) will
+ * be encrypted.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Labels for the active directory.
+ * @type string $state_details
+ * Output only. The state details of the Active Directory.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\ActiveDirectory::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The resource name of the active directory.
+ * Format:
+ * `projects/{project_number}/locations/{location_id}/activeDirectories/{active_directory_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The resource name of the active directory.
+ * Format:
+ * `projects/{project_number}/locations/{location_id}/activeDirectories/{active_directory_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Create time of the active directory.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Create time of the active directory.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The state of the AD.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ActiveDirectory.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The state of the AD.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ActiveDirectory.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\ActiveDirectory\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Name of the Active Directory domain
+ *
+ * Generated from protobuf field string domain = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDomain()
+ {
+ return $this->domain;
+ }
+
+ /**
+ * Required. Name of the Active Directory domain
+ *
+ * Generated from protobuf field string domain = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDomain($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->domain = $var;
+
+ return $this;
+ }
+
+ /**
+ * The Active Directory site the service will limit Domain Controller
+ * discovery too.
+ *
+ * Generated from protobuf field string site = 5;
+ * @return string
+ */
+ public function getSite()
+ {
+ return $this->site;
+ }
+
+ /**
+ * The Active Directory site the service will limit Domain Controller
+ * discovery too.
+ *
+ * Generated from protobuf field string site = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setSite($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->site = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Comma separated list of DNS server IP addresses for the Active
+ * Directory domain.
+ *
+ * Generated from protobuf field string dns = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getDns()
+ {
+ return $this->dns;
+ }
+
+ /**
+ * Required. Comma separated list of DNS server IP addresses for the Active
+ * Directory domain.
+ *
+ * Generated from protobuf field string dns = 6 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setDns($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->dns = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. NetBIOSPrefix is used as a prefix for SMB server name.
+ *
+ * Generated from protobuf field string net_bios_prefix = 7 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getNetBiosPrefix()
+ {
+ return $this->net_bios_prefix;
+ }
+
+ /**
+ * Required. NetBIOSPrefix is used as a prefix for SMB server name.
+ *
+ * Generated from protobuf field string net_bios_prefix = 7 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setNetBiosPrefix($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->net_bios_prefix = $var;
+
+ return $this;
+ }
+
+ /**
+ * The Organizational Unit (OU) within the Windows Active Directory the user
+ * belongs to.
+ *
+ * Generated from protobuf field string organizational_unit = 8;
+ * @return string
+ */
+ public function getOrganizationalUnit()
+ {
+ return $this->organizational_unit;
+ }
+
+ /**
+ * The Organizational Unit (OU) within the Windows Active Directory the user
+ * belongs to.
+ *
+ * Generated from protobuf field string organizational_unit = 8;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrganizationalUnit($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->organizational_unit = $var;
+
+ return $this;
+ }
+
+ /**
+ * If enabled, AES encryption will be enabled for SMB communication.
+ *
+ * Generated from protobuf field bool aes_encryption = 9;
+ * @return bool
+ */
+ public function getAesEncryption()
+ {
+ return $this->aes_encryption;
+ }
+
+ /**
+ * If enabled, AES encryption will be enabled for SMB communication.
+ *
+ * Generated from protobuf field bool aes_encryption = 9;
+ * @param bool $var
+ * @return $this
+ */
+ public function setAesEncryption($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->aes_encryption = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Username of the Active Directory domain administrator.
+ *
+ * Generated from protobuf field string username = 10 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getUsername()
+ {
+ return $this->username;
+ }
+
+ /**
+ * Required. Username of the Active Directory domain administrator.
+ *
+ * Generated from protobuf field string username = 10 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setUsername($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->username = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Password of the Active Directory domain administrator.
+ *
+ * Generated from protobuf field string password = 11 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPassword()
+ {
+ return $this->password;
+ }
+
+ /**
+ * Required. Password of the Active Directory domain administrator.
+ *
+ * Generated from protobuf field string password = 11 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPassword($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->password = $var;
+
+ return $this;
+ }
+
+ /**
+ * Users to be added to the Built-in Backup Operator active directory group.
+ *
+ * Generated from protobuf field repeated string backup_operators = 12;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getBackupOperators()
+ {
+ return $this->backup_operators;
+ }
+
+ /**
+ * Users to be added to the Built-in Backup Operator active directory group.
+ *
+ * Generated from protobuf field repeated string backup_operators = 12;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setBackupOperators($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->backup_operators = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Domain users to be given the SeSecurityPrivilege.
+ *
+ * Generated from protobuf field repeated string security_operators = 13;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSecurityOperators()
+ {
+ return $this->security_operators;
+ }
+
+ /**
+ * Domain users to be given the SeSecurityPrivilege.
+ *
+ * Generated from protobuf field repeated string security_operators = 13;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSecurityOperators($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->security_operators = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Name of the active directory machine. This optional parameter is used only
+ * while creating kerberos volume
+ *
+ * Generated from protobuf field string kdc_hostname = 14;
+ * @return string
+ */
+ public function getKdcHostname()
+ {
+ return $this->kdc_hostname;
+ }
+
+ /**
+ * Name of the active directory machine. This optional parameter is used only
+ * while creating kerberos volume
+ *
+ * Generated from protobuf field string kdc_hostname = 14;
+ * @param string $var
+ * @return $this
+ */
+ public function setKdcHostname($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->kdc_hostname = $var;
+
+ return $this;
+ }
+
+ /**
+ * KDC server IP address for the active directory machine.
+ *
+ * Generated from protobuf field string kdc_ip = 15;
+ * @return string
+ */
+ public function getKdcIp()
+ {
+ return $this->kdc_ip;
+ }
+
+ /**
+ * KDC server IP address for the active directory machine.
+ *
+ * Generated from protobuf field string kdc_ip = 15;
+ * @param string $var
+ * @return $this
+ */
+ public function setKdcIp($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->kdc_ip = $var;
+
+ return $this;
+ }
+
+ /**
+ * If enabled, will allow access to local users and LDAP users. If access is
+ * needed for only LDAP users, it has to be disabled.
+ *
+ * Generated from protobuf field bool nfs_users_with_ldap = 16;
+ * @return bool
+ */
+ public function getNfsUsersWithLdap()
+ {
+ return $this->nfs_users_with_ldap;
+ }
+
+ /**
+ * If enabled, will allow access to local users and LDAP users. If access is
+ * needed for only LDAP users, it has to be disabled.
+ *
+ * Generated from protobuf field bool nfs_users_with_ldap = 16;
+ * @param bool $var
+ * @return $this
+ */
+ public function setNfsUsersWithLdap($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->nfs_users_with_ldap = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of the active directory.
+ *
+ * Generated from protobuf field string description = 17;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description of the active directory.
+ *
+ * Generated from protobuf field string description = 17;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies whether or not the LDAP traffic needs to be signed.
+ *
+ * Generated from protobuf field bool ldap_signing = 18;
+ * @return bool
+ */
+ public function getLdapSigning()
+ {
+ return $this->ldap_signing;
+ }
+
+ /**
+ * Specifies whether or not the LDAP traffic needs to be signed.
+ *
+ * Generated from protobuf field bool ldap_signing = 18;
+ * @param bool $var
+ * @return $this
+ */
+ public function setLdapSigning($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->ldap_signing = $var;
+
+ return $this;
+ }
+
+ /**
+ * If enabled, traffic between the SMB server to Domain Controller (DC) will
+ * be encrypted.
+ *
+ * Generated from protobuf field bool encrypt_dc_connections = 19;
+ * @return bool
+ */
+ public function getEncryptDcConnections()
+ {
+ return $this->encrypt_dc_connections;
+ }
+
+ /**
+ * If enabled, traffic between the SMB server to Domain Controller (DC) will
+ * be encrypted.
+ *
+ * Generated from protobuf field bool encrypt_dc_connections = 19;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEncryptDcConnections($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->encrypt_dc_connections = $var;
+
+ return $this;
+ }
+
+ /**
+ * Labels for the active directory.
+ *
+ * Generated from protobuf field map labels = 20;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Labels for the active directory.
+ *
+ * Generated from protobuf field map labels = 20;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The state details of the Active Directory.
+ *
+ * Generated from protobuf field string state_details = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStateDetails()
+ {
+ return $this->state_details;
+ }
+
+ /**
+ * Output only. The state details of the Active Directory.
+ *
+ * Generated from protobuf field string state_details = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStateDetails($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->state_details = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/ActiveDirectory/State.php b/NetApp/src/V1/ActiveDirectory/State.php
new file mode 100644
index 00000000000..eddffa522c4
--- /dev/null
+++ b/NetApp/src/V1/ActiveDirectory/State.php
@@ -0,0 +1,90 @@
+google.cloud.netapp.v1.ActiveDirectory.State
+ */
+class State
+{
+ /**
+ * Unspecified Active Directory State
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * Active Directory State is Creating
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * Active Directory State is Ready
+ *
+ * Generated from protobuf enum READY = 2;
+ */
+ const READY = 2;
+ /**
+ * Active Directory State is Updating
+ *
+ * Generated from protobuf enum UPDATING = 3;
+ */
+ const UPDATING = 3;
+ /**
+ * Active Directory State is In use
+ *
+ * Generated from protobuf enum IN_USE = 4;
+ */
+ const IN_USE = 4;
+ /**
+ * Active Directory State is Deleting
+ *
+ * Generated from protobuf enum DELETING = 5;
+ */
+ const DELETING = 5;
+ /**
+ * Active Directory State is Error
+ *
+ * Generated from protobuf enum ERROR = 6;
+ */
+ const ERROR = 6;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::READY => 'READY',
+ self::UPDATING => 'UPDATING',
+ self::IN_USE => 'IN_USE',
+ self::DELETING => 'DELETING',
+ self::ERROR => 'ERROR',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+
diff --git a/NetApp/src/V1/Client/BaseClient/NetAppBaseClient.php b/NetApp/src/V1/Client/BaseClient/NetAppBaseClient.php
new file mode 100644
index 00000000000..fe11de852d0
--- /dev/null
+++ b/NetApp/src/V1/Client/BaseClient/NetAppBaseClient.php
@@ -0,0 +1,1701 @@
+ self::SERVICE_NAME,
+ 'apiEndpoint' =>
+ self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' =>
+ __DIR__ . '/../../resources/net_app_client_config.json',
+ 'descriptorsConfigPath' =>
+ __DIR__ . '/../../resources/net_app_descriptor_config.php',
+ 'gcpApiConfigPath' =>
+ __DIR__ . '/../../resources/net_app_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' =>
+ __DIR__ .
+ '/../../resources/net_app_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Return an OperationsClient object with the same endpoint as $this.
+ *
+ * @return OperationsClient
+ */
+ public function getOperationsClient()
+ {
+ return $this->operationsClient;
+ }
+
+ /**
+ * Resume an existing long running operation that was previously started by a long
+ * running API method. If $methodName is not provided, or does not match a long
+ * running API method, then the operation can still be resumed, but the
+ * OperationResponse object will not deserialize the final response.
+ *
+ * @param string $operationName The name of the long running operation
+ * @param string $methodName The name of the method used to start the operation
+ *
+ * @return OperationResponse
+ */
+ public function resumeOperation($operationName, $methodName = null)
+ {
+ $options = isset($this->descriptors[$methodName]['longRunning'])
+ ? $this->descriptors[$methodName]['longRunning']
+ : [];
+ $operation = new OperationResponse(
+ $operationName,
+ $this->getOperationsClient(),
+ $options
+ );
+ $operation->reload();
+ return $operation;
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * active_directory resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $activeDirectory
+ *
+ * @return string The formatted active_directory resource.
+ */
+ public static function activeDirectoryName(
+ string $project,
+ string $location,
+ string $activeDirectory
+ ): string {
+ return self::getPathTemplate('activeDirectory')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'active_directory' => $activeDirectory,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a kms_config
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $kmsConfig
+ *
+ * @return string The formatted kms_config resource.
+ */
+ public static function kmsConfigName(
+ string $project,
+ string $location,
+ string $kmsConfig
+ ): string {
+ return self::getPathTemplate('kmsConfig')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'kms_config' => $kmsConfig,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a location
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ *
+ * @return string The formatted location resource.
+ */
+ public static function locationName(
+ string $project,
+ string $location
+ ): string {
+ return self::getPathTemplate('location')->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a network
+ * resource.
+ *
+ * @param string $project
+ * @param string $network
+ *
+ * @return string The formatted network resource.
+ */
+ public static function networkName(string $project, string $network): string
+ {
+ return self::getPathTemplate('network')->render([
+ 'project' => $project,
+ 'network' => $network,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a replication
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $volume
+ * @param string $replication
+ *
+ * @return string The formatted replication resource.
+ */
+ public static function replicationName(
+ string $project,
+ string $location,
+ string $volume,
+ string $replication
+ ): string {
+ return self::getPathTemplate('replication')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'volume' => $volume,
+ 'replication' => $replication,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a snapshot
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $volume
+ * @param string $snapshot
+ *
+ * @return string The formatted snapshot resource.
+ */
+ public static function snapshotName(
+ string $project,
+ string $location,
+ string $volume,
+ string $snapshot
+ ): string {
+ return self::getPathTemplate('snapshot')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'volume' => $volume,
+ 'snapshot' => $snapshot,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a storage_pool
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $storagePool
+ *
+ * @return string The formatted storage_pool resource.
+ */
+ public static function storagePoolName(
+ string $project,
+ string $location,
+ string $storagePool
+ ): string {
+ return self::getPathTemplate('storagePool')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'storage_pool' => $storagePool,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a volume
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $volume
+ *
+ * @return string The formatted volume resource.
+ */
+ public static function volumeName(
+ string $project,
+ string $location,
+ string $volume
+ ): string {
+ return self::getPathTemplate('volume')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'volume' => $volume,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - activeDirectory: projects/{project}/locations/{location}/activeDirectories/{active_directory}
+ * - kmsConfig: projects/{project}/locations/{location}/kmsConfigs/{kms_config}
+ * - location: projects/{project}/locations/{location}
+ * - network: projects/{project}/global/networks/{network}
+ * - replication: projects/{project}/locations/{location}/volumes/{volume}/replications/{replication}
+ * - snapshot: projects/{project}/locations/{location}/volumes/{volume}/snapshots/{snapshot}
+ * - storagePool: projects/{project}/locations/{location}/storagePools/{storage_pool}
+ * - volume: projects/{project}/locations/{location}/volumes/{volume}
+ *
+ * The optional $template argument can be supplied to specify a particular pattern,
+ * and must match one of the templates listed above. If no $template argument is
+ * provided, or if the $template argument does not match one of the templates
+ * listed, then parseName will check each of the supported templates, and return
+ * the first match.
+ *
+ * @param string $formattedName The formatted name string
+ * @param string $template Optional name of template to match
+ *
+ * @return array An associative array from name component IDs to component values.
+ *
+ * @throws ValidationException If $formattedName could not be matched.
+ */
+ public static function parseName(
+ string $formattedName,
+ string $template = null
+ ): array {
+ return self::parseFormattedName($formattedName, $template);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'netapp.googleapis.com:443'.
+ * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * The credentials to be used by the client to authorize API calls. This option
+ * accepts either a path to a credentials file, or a decoded credentials file as a
+ * PHP array.
+ * *Advanced usage*: In addition, this option can also accept a pre-constructed
+ * {@see \Google\Auth\FetchAuthTokenInterface} object or
+ * {@see \Google\ApiCore\CredentialsWrapper} object. Note that when one of these
+ * objects are provided, any settings in $credentialsConfig will be ignored.
+ * @type array $credentialsConfig
+ * Options used to configure credentials, including auth token caching, for the
+ * client. For a full list of supporting configuration options, see
+ * {@see \Google\ApiCore\CredentialsWrapper::build()} .
+ * @type bool $disableRetries
+ * Determines whether or not retries defined by the client configuration should be
+ * disabled. Defaults to `false`.
+ * @type string|array $clientConfig
+ * Client method configuration, including retry settings. This option can be either
+ * a path to a JSON file, or a PHP array containing the decoded JSON data. By
+ * default this settings points to the default client config file, which is
+ * provided in the resources folder.
+ * @type string|TransportInterface $transport
+ * The transport used for executing network requests. May be either the string
+ * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system.
+ * *Advanced usage*: Additionally, it is possible to pass in an already
+ * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note
+ * that when this object is provided, any settings in $transportConfig, and any
+ * $apiEndpoint setting, will be ignored.
+ * @type array $transportConfig
+ * Configuration options that will be used to construct the transport. Options for
+ * each supported transport type should be passed in a key for that transport. For
+ * example:
+ * $transportConfig = [
+ * 'grpc' => [...],
+ * 'rest' => [...],
+ * ];
+ * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and
+ * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the
+ * supported options.
+ * @type callable $clientCertSource
+ * A callable which returns the client cert as a string. This can be used to
+ * provide a certificate and private key to the transport layer for mTLS.
+ * }
+ *
+ * @throws ValidationException
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /** Handles execution of the async variants for each documented method. */
+ public function __call($method, $args)
+ {
+ if (substr($method, -5) !== 'Async') {
+ trigger_error(
+ 'Call to undefined method ' . __CLASS__ . "::$method()",
+ E_USER_ERROR
+ );
+ }
+
+ array_unshift($args, substr($method, 0, -5));
+ return call_user_func_array([$this, 'startAsyncCall'], $args);
+ }
+
+ /**
+ * CreateActiveDirectory
+ * Creates the active directory specified in the request.
+ *
+ * The async variant is {@see self::createActiveDirectoryAsync()} .
+ *
+ * @example samples/V1/NetAppClient/create_active_directory.php
+ *
+ * @param CreateActiveDirectoryRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createActiveDirectory(
+ CreateActiveDirectoryRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'CreateActiveDirectory',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Creates a new KMS config.
+ *
+ * The async variant is {@see self::createKmsConfigAsync()} .
+ *
+ * @example samples/V1/NetAppClient/create_kms_config.php
+ *
+ * @param CreateKmsConfigRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createKmsConfig(
+ CreateKmsConfigRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'CreateKmsConfig',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Create a new replication for a volume.
+ *
+ * The async variant is {@see self::createReplicationAsync()} .
+ *
+ * @example samples/V1/NetAppClient/create_replication.php
+ *
+ * @param CreateReplicationRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createReplication(
+ CreateReplicationRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'CreateReplication',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Create a new snapshot for a volume.
+ *
+ * The async variant is {@see self::createSnapshotAsync()} .
+ *
+ * @example samples/V1/NetAppClient/create_snapshot.php
+ *
+ * @param CreateSnapshotRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createSnapshot(
+ CreateSnapshotRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'CreateSnapshot',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Creates a new storage pool.
+ *
+ * The async variant is {@see self::createStoragePoolAsync()} .
+ *
+ * @example samples/V1/NetAppClient/create_storage_pool.php
+ *
+ * @param CreateStoragePoolRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createStoragePool(
+ CreateStoragePoolRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'CreateStoragePool',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Creates a new Volume in a given project and location.
+ *
+ * The async variant is {@see self::createVolumeAsync()} .
+ *
+ * @example samples/V1/NetAppClient/create_volume.php
+ *
+ * @param CreateVolumeRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createVolume(
+ CreateVolumeRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'CreateVolume',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Delete the active directory specified in the request.
+ *
+ * The async variant is {@see self::deleteActiveDirectoryAsync()} .
+ *
+ * @example samples/V1/NetAppClient/delete_active_directory.php
+ *
+ * @param DeleteActiveDirectoryRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteActiveDirectory(
+ DeleteActiveDirectoryRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'DeleteActiveDirectory',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Warning! This operation will permanently delete the Kms config.
+ *
+ * The async variant is {@see self::deleteKmsConfigAsync()} .
+ *
+ * @example samples/V1/NetAppClient/delete_kms_config.php
+ *
+ * @param DeleteKmsConfigRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteKmsConfig(
+ DeleteKmsConfigRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'DeleteKmsConfig',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Deletes a replication.
+ *
+ * The async variant is {@see self::deleteReplicationAsync()} .
+ *
+ * @example samples/V1/NetAppClient/delete_replication.php
+ *
+ * @param DeleteReplicationRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteReplication(
+ DeleteReplicationRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'DeleteReplication',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Deletes a snapshot.
+ *
+ * The async variant is {@see self::deleteSnapshotAsync()} .
+ *
+ * @example samples/V1/NetAppClient/delete_snapshot.php
+ *
+ * @param DeleteSnapshotRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteSnapshot(
+ DeleteSnapshotRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'DeleteSnapshot',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Warning! This operation will permanently delete the storage pool.
+ *
+ * The async variant is {@see self::deleteStoragePoolAsync()} .
+ *
+ * @example samples/V1/NetAppClient/delete_storage_pool.php
+ *
+ * @param DeleteStoragePoolRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteStoragePool(
+ DeleteStoragePoolRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'DeleteStoragePool',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Deletes a single Volume.
+ *
+ * The async variant is {@see self::deleteVolumeAsync()} .
+ *
+ * @example samples/V1/NetAppClient/delete_volume.php
+ *
+ * @param DeleteVolumeRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteVolume(
+ DeleteVolumeRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'DeleteVolume',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Encrypt the existing volumes without CMEK encryption with the desired the
+ * KMS config for the whole region.
+ *
+ * The async variant is {@see self::encryptVolumesAsync()} .
+ *
+ * @example samples/V1/NetAppClient/encrypt_volumes.php
+ *
+ * @param EncryptVolumesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function encryptVolumes(
+ EncryptVolumesRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'EncryptVolumes',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Describes a specified active directory.
+ *
+ * The async variant is {@see self::getActiveDirectoryAsync()} .
+ *
+ * @example samples/V1/NetAppClient/get_active_directory.php
+ *
+ * @param GetActiveDirectoryRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return ActiveDirectory
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getActiveDirectory(
+ GetActiveDirectoryRequest $request,
+ array $callOptions = []
+ ): ActiveDirectory {
+ return $this->startApiCall(
+ 'GetActiveDirectory',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Returns the description of the specified KMS config by kms_config_id.
+ *
+ * The async variant is {@see self::getKmsConfigAsync()} .
+ *
+ * @example samples/V1/NetAppClient/get_kms_config.php
+ *
+ * @param GetKmsConfigRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return KmsConfig
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getKmsConfig(
+ GetKmsConfigRequest $request,
+ array $callOptions = []
+ ): KmsConfig {
+ return $this->startApiCall(
+ 'GetKmsConfig',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Describe a replication for a volume.
+ *
+ * The async variant is {@see self::getReplicationAsync()} .
+ *
+ * @example samples/V1/NetAppClient/get_replication.php
+ *
+ * @param GetReplicationRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Replication
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getReplication(
+ GetReplicationRequest $request,
+ array $callOptions = []
+ ): Replication {
+ return $this->startApiCall(
+ 'GetReplication',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Describe a snapshot for a volume.
+ *
+ * The async variant is {@see self::getSnapshotAsync()} .
+ *
+ * @example samples/V1/NetAppClient/get_snapshot.php
+ *
+ * @param GetSnapshotRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Snapshot
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getSnapshot(
+ GetSnapshotRequest $request,
+ array $callOptions = []
+ ): Snapshot {
+ return $this->startApiCall(
+ 'GetSnapshot',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Returns the description of the specified storage pool by poolId.
+ *
+ * The async variant is {@see self::getStoragePoolAsync()} .
+ *
+ * @example samples/V1/NetAppClient/get_storage_pool.php
+ *
+ * @param GetStoragePoolRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return StoragePool
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getStoragePool(
+ GetStoragePoolRequest $request,
+ array $callOptions = []
+ ): StoragePool {
+ return $this->startApiCall(
+ 'GetStoragePool',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Gets details of a single Volume.
+ *
+ * The async variant is {@see self::getVolumeAsync()} .
+ *
+ * @example samples/V1/NetAppClient/get_volume.php
+ *
+ * @param GetVolumeRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Volume
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getVolume(
+ GetVolumeRequest $request,
+ array $callOptions = []
+ ): Volume {
+ return $this->startApiCall('GetVolume', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists active directories.
+ *
+ * The async variant is {@see self::listActiveDirectoriesAsync()} .
+ *
+ * @example samples/V1/NetAppClient/list_active_directories.php
+ *
+ * @param ListActiveDirectoriesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listActiveDirectories(
+ ListActiveDirectoriesRequest $request,
+ array $callOptions = []
+ ): PagedListResponse {
+ return $this->startApiCall(
+ 'ListActiveDirectories',
+ $request,
+ $callOptions
+ );
+ }
+
+ /**
+ * Returns descriptions of all KMS configs owned by the caller.
+ *
+ * The async variant is {@see self::listKmsConfigsAsync()} .
+ *
+ * @example samples/V1/NetAppClient/list_kms_configs.php
+ *
+ * @param ListKmsConfigsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listKmsConfigs(
+ ListKmsConfigsRequest $request,
+ array $callOptions = []
+ ): PagedListResponse {
+ return $this->startApiCall('ListKmsConfigs', $request, $callOptions);
+ }
+
+ /**
+ * Returns descriptions of all replications for a volume.
+ *
+ * The async variant is {@see self::listReplicationsAsync()} .
+ *
+ * @example samples/V1/NetAppClient/list_replications.php
+ *
+ * @param ListReplicationsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listReplications(
+ ListReplicationsRequest $request,
+ array $callOptions = []
+ ): PagedListResponse {
+ return $this->startApiCall('ListReplications', $request, $callOptions);
+ }
+
+ /**
+ * Returns descriptions of all snapshots for a volume.
+ *
+ * The async variant is {@see self::listSnapshotsAsync()} .
+ *
+ * @example samples/V1/NetAppClient/list_snapshots.php
+ *
+ * @param ListSnapshotsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listSnapshots(
+ ListSnapshotsRequest $request,
+ array $callOptions = []
+ ): PagedListResponse {
+ return $this->startApiCall('ListSnapshots', $request, $callOptions);
+ }
+
+ /**
+ * Returns descriptions of all storage pools owned by the caller.
+ *
+ * The async variant is {@see self::listStoragePoolsAsync()} .
+ *
+ * @example samples/V1/NetAppClient/list_storage_pools.php
+ *
+ * @param ListStoragePoolsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listStoragePools(
+ ListStoragePoolsRequest $request,
+ array $callOptions = []
+ ): PagedListResponse {
+ return $this->startApiCall('ListStoragePools', $request, $callOptions);
+ }
+
+ /**
+ * Lists Volumes in a given project.
+ *
+ * The async variant is {@see self::listVolumesAsync()} .
+ *
+ * @example samples/V1/NetAppClient/list_volumes.php
+ *
+ * @param ListVolumesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listVolumes(
+ ListVolumesRequest $request,
+ array $callOptions = []
+ ): PagedListResponse {
+ return $this->startApiCall('ListVolumes', $request, $callOptions);
+ }
+
+ /**
+ * Resume Cross Region Replication.
+ *
+ * The async variant is {@see self::resumeReplicationAsync()} .
+ *
+ * @example samples/V1/NetAppClient/resume_replication.php
+ *
+ * @param ResumeReplicationRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function resumeReplication(
+ ResumeReplicationRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'ResumeReplication',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Reverses direction of replication. Source becomes destination and
+ * destination becomes source.
+ *
+ * The async variant is {@see self::reverseReplicationDirectionAsync()} .
+ *
+ * @example samples/V1/NetAppClient/reverse_replication_direction.php
+ *
+ * @param ReverseReplicationDirectionRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function reverseReplicationDirection(
+ ReverseReplicationDirectionRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'ReverseReplicationDirection',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Revert an existing volume to a specified snapshot.
+ * Warning! This operation will permanently revert all changes made after the
+ * snapshot was created.
+ *
+ * The async variant is {@see self::revertVolumeAsync()} .
+ *
+ * @example samples/V1/NetAppClient/revert_volume.php
+ *
+ * @param RevertVolumeRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function revertVolume(
+ RevertVolumeRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'RevertVolume',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Stop Cross Region Replication.
+ *
+ * The async variant is {@see self::stopReplicationAsync()} .
+ *
+ * @example samples/V1/NetAppClient/stop_replication.php
+ *
+ * @param StopReplicationRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function stopReplication(
+ StopReplicationRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'StopReplication',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Update the parameters of an active directories.
+ *
+ * The async variant is {@see self::updateActiveDirectoryAsync()} .
+ *
+ * @example samples/V1/NetAppClient/update_active_directory.php
+ *
+ * @param UpdateActiveDirectoryRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateActiveDirectory(
+ UpdateActiveDirectoryRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'UpdateActiveDirectory',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Updates the Kms config properties with the full spec
+ *
+ * The async variant is {@see self::updateKmsConfigAsync()} .
+ *
+ * @example samples/V1/NetAppClient/update_kms_config.php
+ *
+ * @param UpdateKmsConfigRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateKmsConfig(
+ UpdateKmsConfigRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'UpdateKmsConfig',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Updates the settings of a specific replication.
+ *
+ * The async variant is {@see self::updateReplicationAsync()} .
+ *
+ * @example samples/V1/NetAppClient/update_replication.php
+ *
+ * @param UpdateReplicationRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateReplication(
+ UpdateReplicationRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'UpdateReplication',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Updates the settings of a specific snapshot.
+ *
+ * The async variant is {@see self::updateSnapshotAsync()} .
+ *
+ * @example samples/V1/NetAppClient/update_snapshot.php
+ *
+ * @param UpdateSnapshotRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateSnapshot(
+ UpdateSnapshotRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'UpdateSnapshot',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Updates the storage pool properties with the full spec
+ *
+ * The async variant is {@see self::updateStoragePoolAsync()} .
+ *
+ * @example samples/V1/NetAppClient/update_storage_pool.php
+ *
+ * @param UpdateStoragePoolRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateStoragePool(
+ UpdateStoragePoolRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'UpdateStoragePool',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Updates the parameters of a single Volume.
+ *
+ * The async variant is {@see self::updateVolumeAsync()} .
+ *
+ * @example samples/V1/NetAppClient/update_volume.php
+ *
+ * @param UpdateVolumeRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateVolume(
+ UpdateVolumeRequest $request,
+ array $callOptions = []
+ ): OperationResponse {
+ return $this->startApiCall(
+ 'UpdateVolume',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Verifies KMS config reachability.
+ *
+ * The async variant is {@see self::verifyKmsConfigAsync()} .
+ *
+ * @example samples/V1/NetAppClient/verify_kms_config.php
+ *
+ * @param VerifyKmsConfigRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return VerifyKmsConfigResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function verifyKmsConfig(
+ VerifyKmsConfigRequest $request,
+ array $callOptions = []
+ ): VerifyKmsConfigResponse {
+ return $this->startApiCall(
+ 'VerifyKmsConfig',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * The async variant is {@see self::getLocationAsync()} .
+ *
+ * @example samples/V1/NetAppClient/get_location.php
+ *
+ * @param GetLocationRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Location
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getLocation(
+ GetLocationRequest $request,
+ array $callOptions = []
+ ): Location {
+ return $this->startApiCall(
+ 'GetLocation',
+ $request,
+ $callOptions
+ )->wait();
+ }
+
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * The async variant is {@see self::listLocationsAsync()} .
+ *
+ * @example samples/V1/NetAppClient/list_locations.php
+ *
+ * @param ListLocationsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listLocations(
+ ListLocationsRequest $request,
+ array $callOptions = []
+ ): PagedListResponse {
+ return $this->startApiCall('ListLocations', $request, $callOptions);
+ }
+}
diff --git a/NetApp/src/V1/Client/NetAppClient.php b/NetApp/src/V1/Client/NetAppClient.php
new file mode 100644
index 00000000000..273513dea85
--- /dev/null
+++ b/NetApp/src/V1/Client/NetAppClient.php
@@ -0,0 +1,40 @@
+google.cloud.netapp.v1.CreateActiveDirectoryRequest
+ */
+class CreateActiveDirectoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. Fields of the to be created active directory.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ActiveDirectory active_directory = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $active_directory = null;
+ /**
+ * Required. ID of the active directory to create.
+ *
+ * Generated from protobuf field string active_directory_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $active_directory_id = '';
+
+ /**
+ * @param string $parent Required. Value for parent. Please see
+ * {@see NetAppClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\NetApp\V1\ActiveDirectory $activeDirectory Required. Fields of the to be created active directory.
+ * @param string $activeDirectoryId Required. ID of the active directory to create.
+ *
+ * @return \Google\Cloud\NetApp\V1\CreateActiveDirectoryRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\NetApp\V1\ActiveDirectory $activeDirectory, string $activeDirectoryId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setActiveDirectory($activeDirectory)
+ ->setActiveDirectoryId($activeDirectoryId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Value for parent.
+ * @type \Google\Cloud\NetApp\V1\ActiveDirectory $active_directory
+ * Required. Fields of the to be created active directory.
+ * @type string $active_directory_id
+ * Required. ID of the active directory to create.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\ActiveDirectory::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Fields of the to be created active directory.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ActiveDirectory active_directory = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\NetApp\V1\ActiveDirectory|null
+ */
+ public function getActiveDirectory()
+ {
+ return $this->active_directory;
+ }
+
+ public function hasActiveDirectory()
+ {
+ return isset($this->active_directory);
+ }
+
+ public function clearActiveDirectory()
+ {
+ unset($this->active_directory);
+ }
+
+ /**
+ * Required. Fields of the to be created active directory.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ActiveDirectory active_directory = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\NetApp\V1\ActiveDirectory $var
+ * @return $this
+ */
+ public function setActiveDirectory($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\ActiveDirectory::class);
+ $this->active_directory = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. ID of the active directory to create.
+ *
+ * Generated from protobuf field string active_directory_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getActiveDirectoryId()
+ {
+ return $this->active_directory_id;
+ }
+
+ /**
+ * Required. ID of the active directory to create.
+ *
+ * Generated from protobuf field string active_directory_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setActiveDirectoryId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->active_directory_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/CreateKmsConfigRequest.php b/NetApp/src/V1/CreateKmsConfigRequest.php
new file mode 100644
index 00000000000..23686b8f475
--- /dev/null
+++ b/NetApp/src/V1/CreateKmsConfigRequest.php
@@ -0,0 +1,173 @@
+google.cloud.netapp.v1.CreateKmsConfigRequest
+ */
+class CreateKmsConfigRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. Id of the requesting KmsConfig
+ * If auto-generating Id server-side, remove this field and
+ * id from the method_signature of Create RPC
+ *
+ * Generated from protobuf field string kms_config_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $kms_config_id = '';
+ /**
+ * Required. The required parameters to create a new KmsConfig.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.KmsConfig kms_config = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $kms_config = null;
+
+ /**
+ * @param string $parent Required. Value for parent. Please see
+ * {@see NetAppClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\NetApp\V1\KmsConfig $kmsConfig Required. The required parameters to create a new KmsConfig.
+ * @param string $kmsConfigId Required. Id of the requesting KmsConfig
+ * If auto-generating Id server-side, remove this field and
+ * id from the method_signature of Create RPC
+ *
+ * @return \Google\Cloud\NetApp\V1\CreateKmsConfigRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\NetApp\V1\KmsConfig $kmsConfig, string $kmsConfigId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setKmsConfig($kmsConfig)
+ ->setKmsConfigId($kmsConfigId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Value for parent.
+ * @type string $kms_config_id
+ * Required. Id of the requesting KmsConfig
+ * If auto-generating Id server-side, remove this field and
+ * id from the method_signature of Create RPC
+ * @type \Google\Cloud\NetApp\V1\KmsConfig $kms_config
+ * Required. The required parameters to create a new KmsConfig.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Kms::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Id of the requesting KmsConfig
+ * If auto-generating Id server-side, remove this field and
+ * id from the method_signature of Create RPC
+ *
+ * Generated from protobuf field string kms_config_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getKmsConfigId()
+ {
+ return $this->kms_config_id;
+ }
+
+ /**
+ * Required. Id of the requesting KmsConfig
+ * If auto-generating Id server-side, remove this field and
+ * id from the method_signature of Create RPC
+ *
+ * Generated from protobuf field string kms_config_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setKmsConfigId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->kms_config_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The required parameters to create a new KmsConfig.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.KmsConfig kms_config = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\NetApp\V1\KmsConfig|null
+ */
+ public function getKmsConfig()
+ {
+ return $this->kms_config;
+ }
+
+ public function hasKmsConfig()
+ {
+ return isset($this->kms_config);
+ }
+
+ public function clearKmsConfig()
+ {
+ unset($this->kms_config);
+ }
+
+ /**
+ * Required. The required parameters to create a new KmsConfig.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.KmsConfig kms_config = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\NetApp\V1\KmsConfig $var
+ * @return $this
+ */
+ public function setKmsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\KmsConfig::class);
+ $this->kms_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/CreateReplicationRequest.php b/NetApp/src/V1/CreateReplicationRequest.php
new file mode 100644
index 00000000000..035cb1d97ad
--- /dev/null
+++ b/NetApp/src/V1/CreateReplicationRequest.php
@@ -0,0 +1,178 @@
+google.cloud.netapp.v1.CreateReplicationRequest
+ */
+class CreateReplicationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The NetApp volume to create the replications of, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. A replication resource
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication replication = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $replication = null;
+ /**
+ * Required. ID of the replication to create.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ *
+ * Generated from protobuf field string replication_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $replication_id = '';
+
+ /**
+ * @param string $parent Required. The NetApp volume to create the replications of, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`
+ * Please see {@see NetAppClient::volumeName()} for help formatting this field.
+ * @param \Google\Cloud\NetApp\V1\Replication $replication Required. A replication resource
+ * @param string $replicationId Required. ID of the replication to create.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ *
+ * @return \Google\Cloud\NetApp\V1\CreateReplicationRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\NetApp\V1\Replication $replication, string $replicationId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setReplication($replication)
+ ->setReplicationId($replicationId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The NetApp volume to create the replications of, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`
+ * @type \Google\Cloud\NetApp\V1\Replication $replication
+ * Required. A replication resource
+ * @type string $replication_id
+ * Required. ID of the replication to create.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Replication::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The NetApp volume to create the replications of, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The NetApp volume to create the replications of, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A replication resource
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication replication = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\NetApp\V1\Replication|null
+ */
+ public function getReplication()
+ {
+ return $this->replication;
+ }
+
+ public function hasReplication()
+ {
+ return isset($this->replication);
+ }
+
+ public function clearReplication()
+ {
+ unset($this->replication);
+ }
+
+ /**
+ * Required. A replication resource
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication replication = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\NetApp\V1\Replication $var
+ * @return $this
+ */
+ public function setReplication($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\Replication::class);
+ $this->replication = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. ID of the replication to create.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ *
+ * Generated from protobuf field string replication_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getReplicationId()
+ {
+ return $this->replication_id;
+ }
+
+ /**
+ * Required. ID of the replication to create.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ *
+ * Generated from protobuf field string replication_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setReplicationId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->replication_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/CreateSnapshotRequest.php b/NetApp/src/V1/CreateSnapshotRequest.php
new file mode 100644
index 00000000000..f049eebe183
--- /dev/null
+++ b/NetApp/src/V1/CreateSnapshotRequest.php
@@ -0,0 +1,178 @@
+google.cloud.netapp.v1.CreateSnapshotRequest
+ */
+class CreateSnapshotRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The NetApp volume to create the snapshots of, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. A snapshot resource
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Snapshot snapshot = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $snapshot = null;
+ /**
+ * Required. ID of the snapshot to create.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ *
+ * Generated from protobuf field string snapshot_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $snapshot_id = '';
+
+ /**
+ * @param string $parent Required. The NetApp volume to create the snapshots of, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`
+ * Please see {@see NetAppClient::volumeName()} for help formatting this field.
+ * @param \Google\Cloud\NetApp\V1\Snapshot $snapshot Required. A snapshot resource
+ * @param string $snapshotId Required. ID of the snapshot to create.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ *
+ * @return \Google\Cloud\NetApp\V1\CreateSnapshotRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\NetApp\V1\Snapshot $snapshot, string $snapshotId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setSnapshot($snapshot)
+ ->setSnapshotId($snapshotId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The NetApp volume to create the snapshots of, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`
+ * @type \Google\Cloud\NetApp\V1\Snapshot $snapshot
+ * Required. A snapshot resource
+ * @type string $snapshot_id
+ * Required. ID of the snapshot to create.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Snapshot::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The NetApp volume to create the snapshots of, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The NetApp volume to create the snapshots of, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A snapshot resource
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Snapshot snapshot = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\NetApp\V1\Snapshot|null
+ */
+ public function getSnapshot()
+ {
+ return $this->snapshot;
+ }
+
+ public function hasSnapshot()
+ {
+ return isset($this->snapshot);
+ }
+
+ public function clearSnapshot()
+ {
+ unset($this->snapshot);
+ }
+
+ /**
+ * Required. A snapshot resource
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Snapshot snapshot = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\NetApp\V1\Snapshot $var
+ * @return $this
+ */
+ public function setSnapshot($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\Snapshot::class);
+ $this->snapshot = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. ID of the snapshot to create.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ *
+ * Generated from protobuf field string snapshot_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getSnapshotId()
+ {
+ return $this->snapshot_id;
+ }
+
+ /**
+ * Required. ID of the snapshot to create.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ *
+ * Generated from protobuf field string snapshot_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setSnapshotId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->snapshot_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/CreateStoragePoolRequest.php b/NetApp/src/V1/CreateStoragePoolRequest.php
new file mode 100644
index 00000000000..480605e743a
--- /dev/null
+++ b/NetApp/src/V1/CreateStoragePoolRequest.php
@@ -0,0 +1,173 @@
+google.cloud.netapp.v1.CreateStoragePoolRequest
+ */
+class CreateStoragePoolRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. Id of the requesting storage pool
+ * If auto-generating Id server-side, remove this field and
+ * id from the method_signature of Create RPC
+ *
+ * Generated from protobuf field string storage_pool_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $storage_pool_id = '';
+ /**
+ * Required. The required parameters to create a new storage pool.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.StoragePool storage_pool = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $storage_pool = null;
+
+ /**
+ * @param string $parent Required. Value for parent. Please see
+ * {@see NetAppClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\NetApp\V1\StoragePool $storagePool Required. The required parameters to create a new storage pool.
+ * @param string $storagePoolId Required. Id of the requesting storage pool
+ * If auto-generating Id server-side, remove this field and
+ * id from the method_signature of Create RPC
+ *
+ * @return \Google\Cloud\NetApp\V1\CreateStoragePoolRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\NetApp\V1\StoragePool $storagePool, string $storagePoolId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setStoragePool($storagePool)
+ ->setStoragePoolId($storagePoolId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Value for parent.
+ * @type string $storage_pool_id
+ * Required. Id of the requesting storage pool
+ * If auto-generating Id server-side, remove this field and
+ * id from the method_signature of Create RPC
+ * @type \Google\Cloud\NetApp\V1\StoragePool $storage_pool
+ * Required. The required parameters to create a new storage pool.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\StoragePool::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Id of the requesting storage pool
+ * If auto-generating Id server-side, remove this field and
+ * id from the method_signature of Create RPC
+ *
+ * Generated from protobuf field string storage_pool_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getStoragePoolId()
+ {
+ return $this->storage_pool_id;
+ }
+
+ /**
+ * Required. Id of the requesting storage pool
+ * If auto-generating Id server-side, remove this field and
+ * id from the method_signature of Create RPC
+ *
+ * Generated from protobuf field string storage_pool_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setStoragePoolId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->storage_pool_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The required parameters to create a new storage pool.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.StoragePool storage_pool = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\NetApp\V1\StoragePool|null
+ */
+ public function getStoragePool()
+ {
+ return $this->storage_pool;
+ }
+
+ public function hasStoragePool()
+ {
+ return isset($this->storage_pool);
+ }
+
+ public function clearStoragePool()
+ {
+ unset($this->storage_pool);
+ }
+
+ /**
+ * Required. The required parameters to create a new storage pool.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.StoragePool storage_pool = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\NetApp\V1\StoragePool $var
+ * @return $this
+ */
+ public function setStoragePool($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\StoragePool::class);
+ $this->storage_pool = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/CreateVolumeRequest.php b/NetApp/src/V1/CreateVolumeRequest.php
new file mode 100644
index 00000000000..6972f7b4b42
--- /dev/null
+++ b/NetApp/src/V1/CreateVolumeRequest.php
@@ -0,0 +1,173 @@
+google.cloud.netapp.v1.CreateVolumeRequest
+ */
+class CreateVolumeRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. Id of the requesting volume
+ * If auto-generating Id server-side, remove this field and
+ * Id from the method_signature of Create RPC
+ *
+ * Generated from protobuf field string volume_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $volume_id = '';
+ /**
+ * Required. The volume being created.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Volume volume = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $volume = null;
+
+ /**
+ * @param string $parent Required. Value for parent. Please see
+ * {@see NetAppClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\NetApp\V1\Volume $volume Required. The volume being created.
+ * @param string $volumeId Required. Id of the requesting volume
+ * If auto-generating Id server-side, remove this field and
+ * Id from the method_signature of Create RPC
+ *
+ * @return \Google\Cloud\NetApp\V1\CreateVolumeRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\NetApp\V1\Volume $volume, string $volumeId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setVolume($volume)
+ ->setVolumeId($volumeId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Value for parent.
+ * @type string $volume_id
+ * Required. Id of the requesting volume
+ * If auto-generating Id server-side, remove this field and
+ * Id from the method_signature of Create RPC
+ * @type \Google\Cloud\NetApp\V1\Volume $volume
+ * Required. The volume being created.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Value for parent.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Id of the requesting volume
+ * If auto-generating Id server-side, remove this field and
+ * Id from the method_signature of Create RPC
+ *
+ * Generated from protobuf field string volume_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getVolumeId()
+ {
+ return $this->volume_id;
+ }
+
+ /**
+ * Required. Id of the requesting volume
+ * If auto-generating Id server-side, remove this field and
+ * Id from the method_signature of Create RPC
+ *
+ * Generated from protobuf field string volume_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setVolumeId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->volume_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The volume being created.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Volume volume = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\NetApp\V1\Volume|null
+ */
+ public function getVolume()
+ {
+ return $this->volume;
+ }
+
+ public function hasVolume()
+ {
+ return isset($this->volume);
+ }
+
+ public function clearVolume()
+ {
+ unset($this->volume);
+ }
+
+ /**
+ * Required. The volume being created.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Volume volume = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\NetApp\V1\Volume $var
+ * @return $this
+ */
+ public function setVolume($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\Volume::class);
+ $this->volume = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/DailySchedule.php b/NetApp/src/V1/DailySchedule.php
new file mode 100644
index 00000000000..fb07517b84d
--- /dev/null
+++ b/NetApp/src/V1/DailySchedule.php
@@ -0,0 +1,169 @@
+google.cloud.netapp.v1.DailySchedule
+ */
+class DailySchedule extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The maximum number of Snapshots to keep for the hourly schedule
+ *
+ * Generated from protobuf field optional double snapshots_to_keep = 1;
+ */
+ protected $snapshots_to_keep = null;
+ /**
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ *
+ * Generated from protobuf field optional double minute = 2;
+ */
+ protected $minute = null;
+ /**
+ * Set the hour to start the snapshot (0-23), defaults to midnight (0).
+ *
+ * Generated from protobuf field optional double hour = 3;
+ */
+ protected $hour = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $snapshots_to_keep
+ * The maximum number of Snapshots to keep for the hourly schedule
+ * @type float $minute
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ * @type float $hour
+ * Set the hour to start the snapshot (0-23), defaults to midnight (0).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The maximum number of Snapshots to keep for the hourly schedule
+ *
+ * Generated from protobuf field optional double snapshots_to_keep = 1;
+ * @return float
+ */
+ public function getSnapshotsToKeep()
+ {
+ return isset($this->snapshots_to_keep) ? $this->snapshots_to_keep : 0.0;
+ }
+
+ public function hasSnapshotsToKeep()
+ {
+ return isset($this->snapshots_to_keep);
+ }
+
+ public function clearSnapshotsToKeep()
+ {
+ unset($this->snapshots_to_keep);
+ }
+
+ /**
+ * The maximum number of Snapshots to keep for the hourly schedule
+ *
+ * Generated from protobuf field optional double snapshots_to_keep = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setSnapshotsToKeep($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->snapshots_to_keep = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ *
+ * Generated from protobuf field optional double minute = 2;
+ * @return float
+ */
+ public function getMinute()
+ {
+ return isset($this->minute) ? $this->minute : 0.0;
+ }
+
+ public function hasMinute()
+ {
+ return isset($this->minute);
+ }
+
+ public function clearMinute()
+ {
+ unset($this->minute);
+ }
+
+ /**
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ *
+ * Generated from protobuf field optional double minute = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setMinute($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->minute = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set the hour to start the snapshot (0-23), defaults to midnight (0).
+ *
+ * Generated from protobuf field optional double hour = 3;
+ * @return float
+ */
+ public function getHour()
+ {
+ return isset($this->hour) ? $this->hour : 0.0;
+ }
+
+ public function hasHour()
+ {
+ return isset($this->hour);
+ }
+
+ public function clearHour()
+ {
+ unset($this->hour);
+ }
+
+ /**
+ * Set the hour to start the snapshot (0-23), defaults to midnight (0).
+ *
+ * Generated from protobuf field optional double hour = 3;
+ * @param float $var
+ * @return $this
+ */
+ public function setHour($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->hour = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/DeleteActiveDirectoryRequest.php b/NetApp/src/V1/DeleteActiveDirectoryRequest.php
new file mode 100644
index 00000000000..9f85f133b42
--- /dev/null
+++ b/NetApp/src/V1/DeleteActiveDirectoryRequest.php
@@ -0,0 +1,81 @@
+google.cloud.netapp.v1.DeleteActiveDirectoryRequest
+ */
+class DeleteActiveDirectoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the active directory.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the active directory. Please see
+ * {@see NetAppClient::activeDirectoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\DeleteActiveDirectoryRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the active directory.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\ActiveDirectory::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the active directory.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the active directory.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/DeleteKmsConfigRequest.php b/NetApp/src/V1/DeleteKmsConfigRequest.php
new file mode 100644
index 00000000000..368fe489c48
--- /dev/null
+++ b/NetApp/src/V1/DeleteKmsConfigRequest.php
@@ -0,0 +1,81 @@
+google.cloud.netapp.v1.DeleteKmsConfigRequest
+ */
+class DeleteKmsConfigRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the KmsConfig.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the KmsConfig. Please see
+ * {@see NetAppClient::kmsConfigName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\DeleteKmsConfigRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the KmsConfig.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Kms::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the KmsConfig.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the KmsConfig.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/DeleteReplicationRequest.php b/NetApp/src/V1/DeleteReplicationRequest.php
new file mode 100644
index 00000000000..e22c8d6c3e0
--- /dev/null
+++ b/NetApp/src/V1/DeleteReplicationRequest.php
@@ -0,0 +1,86 @@
+google.cloud.netapp.v1.DeleteReplicationRequest
+ */
+class DeleteReplicationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The replication resource name, in the format
+ * `projects/*/locations/*/volumes/*/replications/{replication_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The replication resource name, in the format
+ * `projects/*/locations/*/volumes/*/replications/{replication_id}`
+ * Please see {@see NetAppClient::replicationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\DeleteReplicationRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The replication resource name, in the format
+ * `projects/*/locations/*/volumes/*/replications/{replication_id}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Replication::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The replication resource name, in the format
+ * `projects/*/locations/*/volumes/*/replications/{replication_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The replication resource name, in the format
+ * `projects/*/locations/*/volumes/*/replications/{replication_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/DeleteSnapshotRequest.php b/NetApp/src/V1/DeleteSnapshotRequest.php
new file mode 100644
index 00000000000..90dfc2ca707
--- /dev/null
+++ b/NetApp/src/V1/DeleteSnapshotRequest.php
@@ -0,0 +1,86 @@
+google.cloud.netapp.v1.DeleteSnapshotRequest
+ */
+class DeleteSnapshotRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The snapshot resource name, in the format
+ * `projects/*/locations/*/volumes/*/snapshots/{snapshot_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The snapshot resource name, in the format
+ * `projects/*/locations/*/volumes/*/snapshots/{snapshot_id}`
+ * Please see {@see NetAppClient::snapshotName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\DeleteSnapshotRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The snapshot resource name, in the format
+ * `projects/*/locations/*/volumes/*/snapshots/{snapshot_id}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Snapshot::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The snapshot resource name, in the format
+ * `projects/*/locations/*/volumes/*/snapshots/{snapshot_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The snapshot resource name, in the format
+ * `projects/*/locations/*/volumes/*/snapshots/{snapshot_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/DeleteStoragePoolRequest.php b/NetApp/src/V1/DeleteStoragePoolRequest.php
new file mode 100644
index 00000000000..44252d0f286
--- /dev/null
+++ b/NetApp/src/V1/DeleteStoragePoolRequest.php
@@ -0,0 +1,81 @@
+google.cloud.netapp.v1.DeleteStoragePoolRequest
+ */
+class DeleteStoragePoolRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the storage pool
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the storage pool
+ * Please see {@see NetAppClient::storagePoolName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\DeleteStoragePoolRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the storage pool
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\StoragePool::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the storage pool
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the storage pool
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/DeleteVolumeRequest.php b/NetApp/src/V1/DeleteVolumeRequest.php
new file mode 100644
index 00000000000..93bbaa37288
--- /dev/null
+++ b/NetApp/src/V1/DeleteVolumeRequest.php
@@ -0,0 +1,123 @@
+google.cloud.netapp.v1.DeleteVolumeRequest
+ */
+class DeleteVolumeRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the volume
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * If this field is set as true, CCFE will not block the volume resource
+ * deletion even if it has any snapshots resource. (Otherwise, the request
+ * will only work if the volume has no snapshots.)
+ *
+ * Generated from protobuf field bool force = 2;
+ */
+ protected $force = false;
+
+ /**
+ * @param string $name Required. Name of the volume
+ * Please see {@see NetAppClient::volumeName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\DeleteVolumeRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the volume
+ * @type bool $force
+ * If this field is set as true, CCFE will not block the volume resource
+ * deletion even if it has any snapshots resource. (Otherwise, the request
+ * will only work if the volume has no snapshots.)
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the volume
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the volume
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * If this field is set as true, CCFE will not block the volume resource
+ * deletion even if it has any snapshots resource. (Otherwise, the request
+ * will only work if the volume has no snapshots.)
+ *
+ * Generated from protobuf field bool force = 2;
+ * @return bool
+ */
+ public function getForce()
+ {
+ return $this->force;
+ }
+
+ /**
+ * If this field is set as true, CCFE will not block the volume resource
+ * deletion even if it has any snapshots resource. (Otherwise, the request
+ * will only work if the volume has no snapshots.)
+ *
+ * Generated from protobuf field bool force = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setForce($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->force = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/DestinationVolumeParameters.php b/NetApp/src/V1/DestinationVolumeParameters.php
new file mode 100644
index 00000000000..bf75c6b7901
--- /dev/null
+++ b/NetApp/src/V1/DestinationVolumeParameters.php
@@ -0,0 +1,196 @@
+google.cloud.netapp.v1.DestinationVolumeParameters
+ */
+class DestinationVolumeParameters extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Existing destination StoragePool name.
+ *
+ * Generated from protobuf field string storage_pool = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $storage_pool = '';
+ /**
+ * Desired destination volume resource id. If not specified, source volume's
+ * resource id will be used.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ *
+ * Generated from protobuf field string volume_id = 2;
+ */
+ protected $volume_id = '';
+ /**
+ * Destination volume's share name. If not specified, source volume's share
+ * name will be used.
+ *
+ * Generated from protobuf field string share_name = 3;
+ */
+ protected $share_name = '';
+ /**
+ * Description for the destination volume.
+ *
+ * Generated from protobuf field optional string description = 4;
+ */
+ protected $description = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $storage_pool
+ * Required. Existing destination StoragePool name.
+ * @type string $volume_id
+ * Desired destination volume resource id. If not specified, source volume's
+ * resource id will be used.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ * @type string $share_name
+ * Destination volume's share name. If not specified, source volume's share
+ * name will be used.
+ * @type string $description
+ * Description for the destination volume.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Replication::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Existing destination StoragePool name.
+ *
+ * Generated from protobuf field string storage_pool = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getStoragePool()
+ {
+ return $this->storage_pool;
+ }
+
+ /**
+ * Required. Existing destination StoragePool name.
+ *
+ * Generated from protobuf field string storage_pool = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setStoragePool($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->storage_pool = $var;
+
+ return $this;
+ }
+
+ /**
+ * Desired destination volume resource id. If not specified, source volume's
+ * resource id will be used.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ *
+ * Generated from protobuf field string volume_id = 2;
+ * @return string
+ */
+ public function getVolumeId()
+ {
+ return $this->volume_id;
+ }
+
+ /**
+ * Desired destination volume resource id. If not specified, source volume's
+ * resource id will be used.
+ * This value must start with a lowercase letter followed by up to 62
+ * lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
+ *
+ * Generated from protobuf field string volume_id = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setVolumeId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->volume_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Destination volume's share name. If not specified, source volume's share
+ * name will be used.
+ *
+ * Generated from protobuf field string share_name = 3;
+ * @return string
+ */
+ public function getShareName()
+ {
+ return $this->share_name;
+ }
+
+ /**
+ * Destination volume's share name. If not specified, source volume's share
+ * name will be used.
+ *
+ * Generated from protobuf field string share_name = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setShareName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->share_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description for the destination volume.
+ *
+ * Generated from protobuf field optional string description = 4;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return isset($this->description) ? $this->description : '';
+ }
+
+ public function hasDescription()
+ {
+ return isset($this->description);
+ }
+
+ public function clearDescription()
+ {
+ unset($this->description);
+ }
+
+ /**
+ * Description for the destination volume.
+ *
+ * Generated from protobuf field optional string description = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/EncryptVolumesRequest.php b/NetApp/src/V1/EncryptVolumesRequest.php
new file mode 100644
index 00000000000..7a744422eb3
--- /dev/null
+++ b/NetApp/src/V1/EncryptVolumesRequest.php
@@ -0,0 +1,67 @@
+google.cloud.netapp.v1.EncryptVolumesRequest
+ */
+class EncryptVolumesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the KmsConfig.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the KmsConfig.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Kms::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the KmsConfig.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the KmsConfig.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/EncryptionType.php b/NetApp/src/V1/EncryptionType.php
new file mode 100644
index 00000000000..e989a3cc45c
--- /dev/null
+++ b/NetApp/src/V1/EncryptionType.php
@@ -0,0 +1,61 @@
+google.cloud.netapp.v1.EncryptionType
+ */
+class EncryptionType
+{
+ /**
+ * The source of encryption key is not specified.
+ *
+ * Generated from protobuf enum ENCRYPTION_TYPE_UNSPECIFIED = 0;
+ */
+ const ENCRYPTION_TYPE_UNSPECIFIED = 0;
+ /**
+ * Google managed encryption key.
+ *
+ * Generated from protobuf enum SERVICE_MANAGED = 1;
+ */
+ const SERVICE_MANAGED = 1;
+ /**
+ * Customer managed encryption key, which is stored in KMS.
+ *
+ * Generated from protobuf enum CLOUD_KMS = 2;
+ */
+ const CLOUD_KMS = 2;
+
+ private static $valueToName = [
+ self::ENCRYPTION_TYPE_UNSPECIFIED => 'ENCRYPTION_TYPE_UNSPECIFIED',
+ self::SERVICE_MANAGED => 'SERVICE_MANAGED',
+ self::CLOUD_KMS => 'CLOUD_KMS',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/NetApp/src/V1/ExportPolicy.php b/NetApp/src/V1/ExportPolicy.php
new file mode 100644
index 00000000000..7452cf250eb
--- /dev/null
+++ b/NetApp/src/V1/ExportPolicy.php
@@ -0,0 +1,67 @@
+google.cloud.netapp.v1.ExportPolicy
+ */
+class ExportPolicy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. List of export policy rules
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.SimpleExportPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $rules;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\NetApp\V1\SimpleExportPolicyRule>|\Google\Protobuf\Internal\RepeatedField $rules
+ * Required. List of export policy rules
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. List of export policy rules
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.SimpleExportPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRules()
+ {
+ return $this->rules;
+ }
+
+ /**
+ * Required. List of export policy rules
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.SimpleExportPolicyRule rules = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param array<\Google\Cloud\NetApp\V1\SimpleExportPolicyRule>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRules($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\NetApp\V1\SimpleExportPolicyRule::class);
+ $this->rules = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/GetActiveDirectoryRequest.php b/NetApp/src/V1/GetActiveDirectoryRequest.php
new file mode 100644
index 00000000000..8125d94acc5
--- /dev/null
+++ b/NetApp/src/V1/GetActiveDirectoryRequest.php
@@ -0,0 +1,81 @@
+google.cloud.netapp.v1.GetActiveDirectoryRequest
+ */
+class GetActiveDirectoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the active directory.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the active directory. Please see
+ * {@see NetAppClient::activeDirectoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\GetActiveDirectoryRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the active directory.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\ActiveDirectory::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the active directory.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the active directory.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/GetKmsConfigRequest.php b/NetApp/src/V1/GetKmsConfigRequest.php
new file mode 100644
index 00000000000..391aa6fbb72
--- /dev/null
+++ b/NetApp/src/V1/GetKmsConfigRequest.php
@@ -0,0 +1,81 @@
+google.cloud.netapp.v1.GetKmsConfigRequest
+ */
+class GetKmsConfigRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the KmsConfig
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the KmsConfig
+ * Please see {@see NetAppClient::kmsConfigName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\GetKmsConfigRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the KmsConfig
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Kms::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the KmsConfig
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the KmsConfig
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/GetReplicationRequest.php b/NetApp/src/V1/GetReplicationRequest.php
new file mode 100644
index 00000000000..456237ad8eb
--- /dev/null
+++ b/NetApp/src/V1/GetReplicationRequest.php
@@ -0,0 +1,86 @@
+google.cloud.netapp.v1.GetReplicationRequest
+ */
+class GetReplicationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The replication resource name, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The replication resource name, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}`
+ * Please see {@see NetAppClient::replicationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\GetReplicationRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The replication resource name, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Replication::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The replication resource name, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The replication resource name, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/GetSnapshotRequest.php b/NetApp/src/V1/GetSnapshotRequest.php
new file mode 100644
index 00000000000..6bb68cf6807
--- /dev/null
+++ b/NetApp/src/V1/GetSnapshotRequest.php
@@ -0,0 +1,86 @@
+google.cloud.netapp.v1.GetSnapshotRequest
+ */
+class GetSnapshotRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The snapshot resource name, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The snapshot resource name, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`
+ * Please see {@see NetAppClient::snapshotName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\GetSnapshotRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The snapshot resource name, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Snapshot::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The snapshot resource name, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The snapshot resource name, in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/GetStoragePoolRequest.php b/NetApp/src/V1/GetStoragePoolRequest.php
new file mode 100644
index 00000000000..43f77ba0f85
--- /dev/null
+++ b/NetApp/src/V1/GetStoragePoolRequest.php
@@ -0,0 +1,81 @@
+google.cloud.netapp.v1.GetStoragePoolRequest
+ */
+class GetStoragePoolRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the storage pool
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the storage pool
+ * Please see {@see NetAppClient::storagePoolName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\GetStoragePoolRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the storage pool
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\StoragePool::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the storage pool
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the storage pool
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/GetVolumeRequest.php b/NetApp/src/V1/GetVolumeRequest.php
new file mode 100644
index 00000000000..fc00eb0d537
--- /dev/null
+++ b/NetApp/src/V1/GetVolumeRequest.php
@@ -0,0 +1,81 @@
+google.cloud.netapp.v1.GetVolumeRequest
+ */
+class GetVolumeRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the volume
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Name of the volume
+ * Please see {@see NetAppClient::volumeName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\GetVolumeRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the volume
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the volume
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the volume
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/HourlySchedule.php b/NetApp/src/V1/HourlySchedule.php
new file mode 100644
index 00000000000..262ca6d4df7
--- /dev/null
+++ b/NetApp/src/V1/HourlySchedule.php
@@ -0,0 +1,125 @@
+google.cloud.netapp.v1.HourlySchedule
+ */
+class HourlySchedule extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The maximum number of Snapshots to keep for the hourly schedule
+ *
+ * Generated from protobuf field optional double snapshots_to_keep = 1;
+ */
+ protected $snapshots_to_keep = null;
+ /**
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ *
+ * Generated from protobuf field optional double minute = 2;
+ */
+ protected $minute = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $snapshots_to_keep
+ * The maximum number of Snapshots to keep for the hourly schedule
+ * @type float $minute
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The maximum number of Snapshots to keep for the hourly schedule
+ *
+ * Generated from protobuf field optional double snapshots_to_keep = 1;
+ * @return float
+ */
+ public function getSnapshotsToKeep()
+ {
+ return isset($this->snapshots_to_keep) ? $this->snapshots_to_keep : 0.0;
+ }
+
+ public function hasSnapshotsToKeep()
+ {
+ return isset($this->snapshots_to_keep);
+ }
+
+ public function clearSnapshotsToKeep()
+ {
+ unset($this->snapshots_to_keep);
+ }
+
+ /**
+ * The maximum number of Snapshots to keep for the hourly schedule
+ *
+ * Generated from protobuf field optional double snapshots_to_keep = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setSnapshotsToKeep($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->snapshots_to_keep = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ *
+ * Generated from protobuf field optional double minute = 2;
+ * @return float
+ */
+ public function getMinute()
+ {
+ return isset($this->minute) ? $this->minute : 0.0;
+ }
+
+ public function hasMinute()
+ {
+ return isset($this->minute);
+ }
+
+ public function clearMinute()
+ {
+ unset($this->minute);
+ }
+
+ /**
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ *
+ * Generated from protobuf field optional double minute = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setMinute($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->minute = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/KmsConfig.php b/NetApp/src/V1/KmsConfig.php
new file mode 100644
index 00000000000..1bfa5e1a04d
--- /dev/null
+++ b/NetApp/src/V1/KmsConfig.php
@@ -0,0 +1,361 @@
+google.cloud.netapp.v1.KmsConfig
+ */
+class KmsConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Name of the KmsConfig.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Required. Customer managed crypto key resource full name. Format:
+ * projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key}.
+ *
+ * Generated from protobuf field string crypto_key_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $crypto_key_name = '';
+ /**
+ * Output only. State of the KmsConfig.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.KmsConfig.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. State details of the KmsConfig.
+ *
+ * Generated from protobuf field string state_details = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state_details = '';
+ /**
+ * Output only. Create time of the KmsConfig.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Description of the KmsConfig.
+ *
+ * Generated from protobuf field string description = 6;
+ */
+ protected $description = '';
+ /**
+ * Labels as key value pairs
+ *
+ * Generated from protobuf field map labels = 7;
+ */
+ private $labels;
+ /**
+ * Output only. Instructions to provide the access to the customer provided
+ * encryption key.
+ *
+ * Generated from protobuf field string instructions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $instructions = '';
+ /**
+ * Output only. The Service account which will have access to the customer
+ * provided encryption key.
+ *
+ * Generated from protobuf field string service_account = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $service_account = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. Name of the KmsConfig.
+ * @type string $crypto_key_name
+ * Required. Customer managed crypto key resource full name. Format:
+ * projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key}.
+ * @type int $state
+ * Output only. State of the KmsConfig.
+ * @type string $state_details
+ * Output only. State details of the KmsConfig.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Create time of the KmsConfig.
+ * @type string $description
+ * Description of the KmsConfig.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Labels as key value pairs
+ * @type string $instructions
+ * Output only. Instructions to provide the access to the customer provided
+ * encryption key.
+ * @type string $service_account
+ * Output only. The Service account which will have access to the customer
+ * provided encryption key.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Kms::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Name of the KmsConfig.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. Name of the KmsConfig.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Customer managed crypto key resource full name. Format:
+ * projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key}.
+ *
+ * Generated from protobuf field string crypto_key_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getCryptoKeyName()
+ {
+ return $this->crypto_key_name;
+ }
+
+ /**
+ * Required. Customer managed crypto key resource full name. Format:
+ * projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key}.
+ *
+ * Generated from protobuf field string crypto_key_name = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setCryptoKeyName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->crypto_key_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. State of the KmsConfig.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.KmsConfig.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. State of the KmsConfig.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.KmsConfig.State state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\KmsConfig\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. State details of the KmsConfig.
+ *
+ * Generated from protobuf field string state_details = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStateDetails()
+ {
+ return $this->state_details;
+ }
+
+ /**
+ * Output only. State details of the KmsConfig.
+ *
+ * Generated from protobuf field string state_details = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStateDetails($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->state_details = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Create time of the KmsConfig.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Create time of the KmsConfig.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of the KmsConfig.
+ *
+ * Generated from protobuf field string description = 6;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description of the KmsConfig.
+ *
+ * Generated from protobuf field string description = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Labels as key value pairs
+ *
+ * Generated from protobuf field map labels = 7;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Labels as key value pairs
+ *
+ * Generated from protobuf field map labels = 7;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Instructions to provide the access to the customer provided
+ * encryption key.
+ *
+ * Generated from protobuf field string instructions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getInstructions()
+ {
+ return $this->instructions;
+ }
+
+ /**
+ * Output only. Instructions to provide the access to the customer provided
+ * encryption key.
+ *
+ * Generated from protobuf field string instructions = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setInstructions($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->instructions = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The Service account which will have access to the customer
+ * provided encryption key.
+ *
+ * Generated from protobuf field string service_account = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getServiceAccount()
+ {
+ return $this->service_account;
+ }
+
+ /**
+ * Output only. The Service account which will have access to the customer
+ * provided encryption key.
+ *
+ * Generated from protobuf field string service_account = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceAccount($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_account = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/KmsConfig/State.php b/NetApp/src/V1/KmsConfig/State.php
new file mode 100644
index 00000000000..8899d1c99ae
--- /dev/null
+++ b/NetApp/src/V1/KmsConfig/State.php
@@ -0,0 +1,127 @@
+google.cloud.netapp.v1.KmsConfig.State
+ */
+class State
+{
+ /**
+ * Unspecified KmsConfig State
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * KmsConfig State is Ready
+ *
+ * Generated from protobuf enum READY = 1;
+ */
+ const READY = 1;
+ /**
+ * KmsConfig State is Creating
+ *
+ * Generated from protobuf enum CREATING = 2;
+ */
+ const CREATING = 2;
+ /**
+ * KmsConfig State is Deleting
+ *
+ * Generated from protobuf enum DELETING = 3;
+ */
+ const DELETING = 3;
+ /**
+ * KmsConfig State is Updating
+ *
+ * Generated from protobuf enum UPDATING = 4;
+ */
+ const UPDATING = 4;
+ /**
+ * KmsConfig State is In Use.
+ *
+ * Generated from protobuf enum IN_USE = 5;
+ */
+ const IN_USE = 5;
+ /**
+ * KmsConfig State is Error
+ *
+ * Generated from protobuf enum ERROR = 6;
+ */
+ const ERROR = 6;
+ /**
+ * KmsConfig State is Pending to verify crypto key access.
+ *
+ * Generated from protobuf enum KEY_CHECK_PENDING = 7;
+ */
+ const KEY_CHECK_PENDING = 7;
+ /**
+ * KmsConfig State is Not accessbile by the SDE service account to the
+ * crypto key.
+ *
+ * Generated from protobuf enum KEY_NOT_REACHABLE = 8;
+ */
+ const KEY_NOT_REACHABLE = 8;
+ /**
+ * KmsConfig State is Disabling.
+ *
+ * Generated from protobuf enum DISABLING = 9;
+ */
+ const DISABLING = 9;
+ /**
+ * KmsConfig State is Disabled.
+ *
+ * Generated from protobuf enum DISABLED = 10;
+ */
+ const DISABLED = 10;
+ /**
+ * KmsConfig State is Migrating.
+ * The existing volumes are migrating from SMEK to CMEK.
+ *
+ * Generated from protobuf enum MIGRATING = 11;
+ */
+ const MIGRATING = 11;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::READY => 'READY',
+ self::CREATING => 'CREATING',
+ self::DELETING => 'DELETING',
+ self::UPDATING => 'UPDATING',
+ self::IN_USE => 'IN_USE',
+ self::ERROR => 'ERROR',
+ self::KEY_CHECK_PENDING => 'KEY_CHECK_PENDING',
+ self::KEY_NOT_REACHABLE => 'KEY_NOT_REACHABLE',
+ self::DISABLING => 'DISABLING',
+ self::DISABLED => 'DISABLED',
+ self::MIGRATING => 'MIGRATING',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+
diff --git a/NetApp/src/V1/ListActiveDirectoriesRequest.php b/NetApp/src/V1/ListActiveDirectoriesRequest.php
new file mode 100644
index 00000000000..4a250718ad7
--- /dev/null
+++ b/NetApp/src/V1/ListActiveDirectoriesRequest.php
@@ -0,0 +1,221 @@
+google.cloud.netapp.v1.ListActiveDirectoriesRequest
+ */
+class ListActiveDirectoriesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for ListActiveDirectoriesRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Filtering results
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+ /**
+ * Hint for how to order the results
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. Parent value for ListActiveDirectoriesRequest
+ * Please see {@see NetAppClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\ListActiveDirectoriesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for ListActiveDirectoriesRequest
+ * @type int $page_size
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default.
+ * @type string $page_token
+ * A token identifying a page of results the server should return.
+ * @type string $filter
+ * Filtering results
+ * @type string $order_by
+ * Hint for how to order the results
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\ActiveDirectory::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for ListActiveDirectoriesRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for ListActiveDirectoriesRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Filtering results
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Filtering results
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Hint for how to order the results
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Hint for how to order the results
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/ListActiveDirectoriesResponse.php b/NetApp/src/V1/ListActiveDirectoriesResponse.php
new file mode 100644
index 00000000000..3a969308213
--- /dev/null
+++ b/NetApp/src/V1/ListActiveDirectoriesResponse.php
@@ -0,0 +1,135 @@
+google.cloud.netapp.v1.ListActiveDirectoriesResponse
+ */
+class ListActiveDirectoriesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of active directories.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.ActiveDirectory active_directories = 1;
+ */
+ private $active_directories;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\NetApp\V1\ActiveDirectory>|\Google\Protobuf\Internal\RepeatedField $active_directories
+ * The list of active directories.
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\ActiveDirectory::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of active directories.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.ActiveDirectory active_directories = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getActiveDirectories()
+ {
+ return $this->active_directories;
+ }
+
+ /**
+ * The list of active directories.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.ActiveDirectory active_directories = 1;
+ * @param array<\Google\Cloud\NetApp\V1\ActiveDirectory>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setActiveDirectories($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\NetApp\V1\ActiveDirectory::class);
+ $this->active_directories = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/ListKmsConfigsRequest.php b/NetApp/src/V1/ListKmsConfigsRequest.php
new file mode 100644
index 00000000000..425b86bdb4c
--- /dev/null
+++ b/NetApp/src/V1/ListKmsConfigsRequest.php
@@ -0,0 +1,221 @@
+google.cloud.netapp.v1.ListKmsConfigsRequest
+ */
+class ListKmsConfigsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 4;
+ */
+ protected $order_by = '';
+ /**
+ * List filter.
+ *
+ * Generated from protobuf field string filter = 5;
+ */
+ protected $filter = '';
+
+ /**
+ * @param string $parent Required. Parent value
+ * Please see {@see NetAppClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\ListKmsConfigsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value
+ * @type int $page_size
+ * The maximum number of items to return.
+ * @type string $page_token
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ * @type string $order_by
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ * @type string $filter
+ * List filter.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Kms::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 4;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+ /**
+ * List filter.
+ *
+ * Generated from protobuf field string filter = 5;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * List filter.
+ *
+ * Generated from protobuf field string filter = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/ListKmsConfigsResponse.php b/NetApp/src/V1/ListKmsConfigsResponse.php
new file mode 100644
index 00000000000..fd81c2db6c4
--- /dev/null
+++ b/NetApp/src/V1/ListKmsConfigsResponse.php
@@ -0,0 +1,135 @@
+google.cloud.netapp.v1.ListKmsConfigsResponse
+ */
+class ListKmsConfigsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of KmsConfigs
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.KmsConfig kms_configs = 1;
+ */
+ private $kms_configs;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\NetApp\V1\KmsConfig>|\Google\Protobuf\Internal\RepeatedField $kms_configs
+ * The list of KmsConfigs
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Kms::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of KmsConfigs
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.KmsConfig kms_configs = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getKmsConfigs()
+ {
+ return $this->kms_configs;
+ }
+
+ /**
+ * The list of KmsConfigs
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.KmsConfig kms_configs = 1;
+ * @param array<\Google\Cloud\NetApp\V1\KmsConfig>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setKmsConfigs($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\NetApp\V1\KmsConfig::class);
+ $this->kms_configs = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/ListReplicationsRequest.php b/NetApp/src/V1/ListReplicationsRequest.php
new file mode 100644
index 00000000000..094c7667820
--- /dev/null
+++ b/NetApp/src/V1/ListReplicationsRequest.php
@@ -0,0 +1,231 @@
+google.cloud.netapp.v1.ListReplicationsRequest
+ */
+class ListReplicationsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The volume for which to retrieve replication information,
+ * in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 4;
+ */
+ protected $order_by = '';
+ /**
+ * List filter.
+ *
+ * Generated from protobuf field string filter = 5;
+ */
+ protected $filter = '';
+
+ /**
+ * @param string $parent Required. The volume for which to retrieve replication information,
+ * in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`. Please see
+ * {@see NetAppClient::volumeName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\ListReplicationsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The volume for which to retrieve replication information,
+ * in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`.
+ * @type int $page_size
+ * The maximum number of items to return.
+ * @type string $page_token
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ * @type string $order_by
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ * @type string $filter
+ * List filter.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Replication::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The volume for which to retrieve replication information,
+ * in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The volume for which to retrieve replication information,
+ * in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 4;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+ /**
+ * List filter.
+ *
+ * Generated from protobuf field string filter = 5;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * List filter.
+ *
+ * Generated from protobuf field string filter = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/ListReplicationsResponse.php b/NetApp/src/V1/ListReplicationsResponse.php
new file mode 100644
index 00000000000..49323c831c1
--- /dev/null
+++ b/NetApp/src/V1/ListReplicationsResponse.php
@@ -0,0 +1,139 @@
+google.cloud.netapp.v1.ListReplicationsResponse
+ */
+class ListReplicationsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of replications in the project for the specified volume.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.Replication replications = 1;
+ */
+ private $replications;
+ /**
+ * The token you can use to retrieve the next page of results. Not returned
+ * if there are no more results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\NetApp\V1\Replication>|\Google\Protobuf\Internal\RepeatedField $replications
+ * A list of replications in the project for the specified volume.
+ * @type string $next_page_token
+ * The token you can use to retrieve the next page of results. Not returned
+ * if there are no more results in the list.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Replication::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of replications in the project for the specified volume.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.Replication replications = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getReplications()
+ {
+ return $this->replications;
+ }
+
+ /**
+ * A list of replications in the project for the specified volume.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.Replication replications = 1;
+ * @param array<\Google\Cloud\NetApp\V1\Replication>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setReplications($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\NetApp\V1\Replication::class);
+ $this->replications = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The token you can use to retrieve the next page of results. Not returned
+ * if there are no more results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The token you can use to retrieve the next page of results. Not returned
+ * if there are no more results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/ListSnapshotsRequest.php b/NetApp/src/V1/ListSnapshotsRequest.php
new file mode 100644
index 00000000000..d2539ad77f8
--- /dev/null
+++ b/NetApp/src/V1/ListSnapshotsRequest.php
@@ -0,0 +1,231 @@
+google.cloud.netapp.v1.ListSnapshotsRequest
+ */
+class ListSnapshotsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The volume for which to retrieve snapshot information,
+ * in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 4;
+ */
+ protected $order_by = '';
+ /**
+ * List filter.
+ *
+ * Generated from protobuf field string filter = 5;
+ */
+ protected $filter = '';
+
+ /**
+ * @param string $parent Required. The volume for which to retrieve snapshot information,
+ * in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`. Please see
+ * {@see NetAppClient::volumeName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\ListSnapshotsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The volume for which to retrieve snapshot information,
+ * in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`.
+ * @type int $page_size
+ * The maximum number of items to return.
+ * @type string $page_token
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ * @type string $order_by
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ * @type string $filter
+ * List filter.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Snapshot::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The volume for which to retrieve snapshot information,
+ * in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The volume for which to retrieve snapshot information,
+ * in the format
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 4;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+ /**
+ * List filter.
+ *
+ * Generated from protobuf field string filter = 5;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * List filter.
+ *
+ * Generated from protobuf field string filter = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/ListSnapshotsResponse.php b/NetApp/src/V1/ListSnapshotsResponse.php
new file mode 100644
index 00000000000..78b8503f965
--- /dev/null
+++ b/NetApp/src/V1/ListSnapshotsResponse.php
@@ -0,0 +1,139 @@
+google.cloud.netapp.v1.ListSnapshotsResponse
+ */
+class ListSnapshotsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of snapshots in the project for the specified volume.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.Snapshot snapshots = 1;
+ */
+ private $snapshots;
+ /**
+ * The token you can use to retrieve the next page of results. Not returned
+ * if there are no more results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\NetApp\V1\Snapshot>|\Google\Protobuf\Internal\RepeatedField $snapshots
+ * A list of snapshots in the project for the specified volume.
+ * @type string $next_page_token
+ * The token you can use to retrieve the next page of results. Not returned
+ * if there are no more results in the list.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Snapshot::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of snapshots in the project for the specified volume.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.Snapshot snapshots = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSnapshots()
+ {
+ return $this->snapshots;
+ }
+
+ /**
+ * A list of snapshots in the project for the specified volume.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.Snapshot snapshots = 1;
+ * @param array<\Google\Cloud\NetApp\V1\Snapshot>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSnapshots($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\NetApp\V1\Snapshot::class);
+ $this->snapshots = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The token you can use to retrieve the next page of results. Not returned
+ * if there are no more results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The token you can use to retrieve the next page of results. Not returned
+ * if there are no more results in the list.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/ListStoragePoolsRequest.php b/NetApp/src/V1/ListStoragePoolsRequest.php
new file mode 100644
index 00000000000..fcb0728c16f
--- /dev/null
+++ b/NetApp/src/V1/ListStoragePoolsRequest.php
@@ -0,0 +1,221 @@
+google.cloud.netapp.v1.ListStoragePoolsRequest
+ */
+class ListStoragePoolsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 4;
+ */
+ protected $order_by = '';
+ /**
+ * List filter.
+ *
+ * Generated from protobuf field string filter = 5;
+ */
+ protected $filter = '';
+
+ /**
+ * @param string $parent Required. Parent value
+ * Please see {@see NetAppClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\ListStoragePoolsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value
+ * @type int $page_size
+ * The maximum number of items to return.
+ * @type string $page_token
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ * @type string $order_by
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ * @type string $filter
+ * List filter.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\StoragePool::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of items to return.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value to use if there are additional
+ * results to retrieve for this list request.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 4;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Sort results. Supported values are "name", "name desc" or "" (unsorted).
+ *
+ * Generated from protobuf field string order_by = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+ /**
+ * List filter.
+ *
+ * Generated from protobuf field string filter = 5;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * List filter.
+ *
+ * Generated from protobuf field string filter = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/ListStoragePoolsResponse.php b/NetApp/src/V1/ListStoragePoolsResponse.php
new file mode 100644
index 00000000000..2aa56a245d4
--- /dev/null
+++ b/NetApp/src/V1/ListStoragePoolsResponse.php
@@ -0,0 +1,135 @@
+google.cloud.netapp.v1.ListStoragePoolsResponse
+ */
+class ListStoragePoolsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of StoragePools
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.StoragePool storage_pools = 1;
+ */
+ private $storage_pools;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\NetApp\V1\StoragePool>|\Google\Protobuf\Internal\RepeatedField $storage_pools
+ * The list of StoragePools
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\StoragePool::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of StoragePools
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.StoragePool storage_pools = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getStoragePools()
+ {
+ return $this->storage_pools;
+ }
+
+ /**
+ * The list of StoragePools
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.StoragePool storage_pools = 1;
+ * @param array<\Google\Cloud\NetApp\V1\StoragePool>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setStoragePools($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\NetApp\V1\StoragePool::class);
+ $this->storage_pools = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/ListVolumesRequest.php b/NetApp/src/V1/ListVolumesRequest.php
new file mode 100644
index 00000000000..68b888bed68
--- /dev/null
+++ b/NetApp/src/V1/ListVolumesRequest.php
@@ -0,0 +1,221 @@
+google.cloud.netapp.v1.ListVolumesRequest
+ */
+class ListVolumesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Parent value for ListVolumesRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Filtering results
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+ /**
+ * Hint for how to order the results
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. Parent value for ListVolumesRequest
+ * Please see {@see NetAppClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\ListVolumesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Parent value for ListVolumesRequest
+ * @type int $page_size
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default.
+ * @type string $page_token
+ * A token identifying a page of results the server should return.
+ * @type string $filter
+ * Filtering results
+ * @type string $order_by
+ * Hint for how to order the results
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Parent value for ListVolumesRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Parent value for ListVolumesRequest
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Requested page size. Server may return fewer items than requested.
+ * If unspecified, the server will pick an appropriate default.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Filtering results
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Filtering results
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Hint for how to order the results
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Hint for how to order the results
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/ListVolumesResponse.php b/NetApp/src/V1/ListVolumesResponse.php
new file mode 100644
index 00000000000..077e3a87033
--- /dev/null
+++ b/NetApp/src/V1/ListVolumesResponse.php
@@ -0,0 +1,135 @@
+google.cloud.netapp.v1.ListVolumesResponse
+ */
+class ListVolumesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of Volume
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.Volume volumes = 1;
+ */
+ private $volumes;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ */
+ private $unreachable;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\NetApp\V1\Volume>|\Google\Protobuf\Internal\RepeatedField $volumes
+ * The list of Volume
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $unreachable
+ * Locations that could not be reached.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of Volume
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.Volume volumes = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getVolumes()
+ {
+ return $this->volumes;
+ }
+
+ /**
+ * The list of Volume
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.Volume volumes = 1;
+ * @param array<\Google\Cloud\NetApp\V1\Volume>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setVolumes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\NetApp\V1\Volume::class);
+ $this->volumes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUnreachable()
+ {
+ return $this->unreachable;
+ }
+
+ /**
+ * Locations that could not be reached.
+ *
+ * Generated from protobuf field repeated string unreachable = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUnreachable($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->unreachable = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/MonthlySchedule.php b/NetApp/src/V1/MonthlySchedule.php
new file mode 100644
index 00000000000..4cd93254952
--- /dev/null
+++ b/NetApp/src/V1/MonthlySchedule.php
@@ -0,0 +1,217 @@
+google.cloud.netapp.v1.MonthlySchedule
+ */
+class MonthlySchedule extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The maximum number of Snapshots to keep for the hourly schedule
+ *
+ * Generated from protobuf field optional double snapshots_to_keep = 1;
+ */
+ protected $snapshots_to_keep = null;
+ /**
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ *
+ * Generated from protobuf field optional double minute = 2;
+ */
+ protected $minute = null;
+ /**
+ * Set the hour to start the snapshot (0-23), defaults to midnight (0).
+ *
+ * Generated from protobuf field optional double hour = 3;
+ */
+ protected $hour = null;
+ /**
+ * Set the day or days of the month to make a snapshot (1-31). Accepts a
+ * comma separated number of days. Defaults to '1'.
+ *
+ * Generated from protobuf field optional string days_of_month = 4;
+ */
+ protected $days_of_month = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $snapshots_to_keep
+ * The maximum number of Snapshots to keep for the hourly schedule
+ * @type float $minute
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ * @type float $hour
+ * Set the hour to start the snapshot (0-23), defaults to midnight (0).
+ * @type string $days_of_month
+ * Set the day or days of the month to make a snapshot (1-31). Accepts a
+ * comma separated number of days. Defaults to '1'.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The maximum number of Snapshots to keep for the hourly schedule
+ *
+ * Generated from protobuf field optional double snapshots_to_keep = 1;
+ * @return float
+ */
+ public function getSnapshotsToKeep()
+ {
+ return isset($this->snapshots_to_keep) ? $this->snapshots_to_keep : 0.0;
+ }
+
+ public function hasSnapshotsToKeep()
+ {
+ return isset($this->snapshots_to_keep);
+ }
+
+ public function clearSnapshotsToKeep()
+ {
+ unset($this->snapshots_to_keep);
+ }
+
+ /**
+ * The maximum number of Snapshots to keep for the hourly schedule
+ *
+ * Generated from protobuf field optional double snapshots_to_keep = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setSnapshotsToKeep($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->snapshots_to_keep = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ *
+ * Generated from protobuf field optional double minute = 2;
+ * @return float
+ */
+ public function getMinute()
+ {
+ return isset($this->minute) ? $this->minute : 0.0;
+ }
+
+ public function hasMinute()
+ {
+ return isset($this->minute);
+ }
+
+ public function clearMinute()
+ {
+ unset($this->minute);
+ }
+
+ /**
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ *
+ * Generated from protobuf field optional double minute = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setMinute($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->minute = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set the hour to start the snapshot (0-23), defaults to midnight (0).
+ *
+ * Generated from protobuf field optional double hour = 3;
+ * @return float
+ */
+ public function getHour()
+ {
+ return isset($this->hour) ? $this->hour : 0.0;
+ }
+
+ public function hasHour()
+ {
+ return isset($this->hour);
+ }
+
+ public function clearHour()
+ {
+ unset($this->hour);
+ }
+
+ /**
+ * Set the hour to start the snapshot (0-23), defaults to midnight (0).
+ *
+ * Generated from protobuf field optional double hour = 3;
+ * @param float $var
+ * @return $this
+ */
+ public function setHour($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->hour = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set the day or days of the month to make a snapshot (1-31). Accepts a
+ * comma separated number of days. Defaults to '1'.
+ *
+ * Generated from protobuf field optional string days_of_month = 4;
+ * @return string
+ */
+ public function getDaysOfMonth()
+ {
+ return isset($this->days_of_month) ? $this->days_of_month : '';
+ }
+
+ public function hasDaysOfMonth()
+ {
+ return isset($this->days_of_month);
+ }
+
+ public function clearDaysOfMonth()
+ {
+ unset($this->days_of_month);
+ }
+
+ /**
+ * Set the day or days of the month to make a snapshot (1-31). Accepts a
+ * comma separated number of days. Defaults to '1'.
+ *
+ * Generated from protobuf field optional string days_of_month = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDaysOfMonth($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->days_of_month = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/MountOption.php b/NetApp/src/V1/MountOption.php
new file mode 100644
index 00000000000..7b70200e108
--- /dev/null
+++ b/NetApp/src/V1/MountOption.php
@@ -0,0 +1,169 @@
+google.cloud.netapp.v1.MountOption
+ */
+class MountOption extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Export string
+ *
+ * Generated from protobuf field string export = 1;
+ */
+ protected $export = '';
+ /**
+ * Full export string
+ *
+ * Generated from protobuf field string export_full = 2;
+ */
+ protected $export_full = '';
+ /**
+ * Protocol to mount with.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Protocols protocol = 3;
+ */
+ protected $protocol = 0;
+ /**
+ * Instructions for mounting
+ *
+ * Generated from protobuf field string instructions = 4;
+ */
+ protected $instructions = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $export
+ * Export string
+ * @type string $export_full
+ * Full export string
+ * @type int $protocol
+ * Protocol to mount with.
+ * @type string $instructions
+ * Instructions for mounting
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Export string
+ *
+ * Generated from protobuf field string export = 1;
+ * @return string
+ */
+ public function getExport()
+ {
+ return $this->export;
+ }
+
+ /**
+ * Export string
+ *
+ * Generated from protobuf field string export = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setExport($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->export = $var;
+
+ return $this;
+ }
+
+ /**
+ * Full export string
+ *
+ * Generated from protobuf field string export_full = 2;
+ * @return string
+ */
+ public function getExportFull()
+ {
+ return $this->export_full;
+ }
+
+ /**
+ * Full export string
+ *
+ * Generated from protobuf field string export_full = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setExportFull($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->export_full = $var;
+
+ return $this;
+ }
+
+ /**
+ * Protocol to mount with.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Protocols protocol = 3;
+ * @return int
+ */
+ public function getProtocol()
+ {
+ return $this->protocol;
+ }
+
+ /**
+ * Protocol to mount with.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Protocols protocol = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setProtocol($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\Protocols::class);
+ $this->protocol = $var;
+
+ return $this;
+ }
+
+ /**
+ * Instructions for mounting
+ *
+ * Generated from protobuf field string instructions = 4;
+ * @return string
+ */
+ public function getInstructions()
+ {
+ return $this->instructions;
+ }
+
+ /**
+ * Instructions for mounting
+ *
+ * Generated from protobuf field string instructions = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setInstructions($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->instructions = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/OperationMetadata.php b/NetApp/src/V1/OperationMetadata.php
new file mode 100644
index 00000000000..58b129644ac
--- /dev/null
+++ b/NetApp/src/V1/OperationMetadata.php
@@ -0,0 +1,307 @@
+google.cloud.netapp.v1.OperationMetadata
+ */
+class OperationMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $target = '';
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $verb = '';
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $status_message = '';
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have been canceled successfully
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $requested_cancellation = false;
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $api_version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time the operation was created.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time the operation finished running.
+ * @type string $target
+ * Output only. Server-defined resource path for the target of the operation.
+ * @type string $verb
+ * Output only. Name of the verb executed by the operation.
+ * @type string $status_message
+ * Output only. Human-readable status of the operation, if any.
+ * @type bool $requested_cancellation
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have been canceled successfully
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ * @type string $api_version
+ * Output only. API version used to start the operation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\CloudNetappService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEndTime()
+ {
+ return $this->end_time;
+ }
+
+ public function hasEndTime()
+ {
+ return isset($this->end_time);
+ }
+
+ public function clearEndTime()
+ {
+ unset($this->end_time);
+ }
+
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTarget($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getVerb()
+ {
+ return $this->verb;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setVerb($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->verb = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStatusMessage()
+ {
+ return $this->status_message;
+ }
+
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStatusMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->status_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have been canceled successfully
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getRequestedCancellation()
+ {
+ return $this->requested_cancellation;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have been canceled successfully
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setRequestedCancellation($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->requested_cancellation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getApiVersion()
+ {
+ return $this->api_version;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setApiVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->api_version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/Protocols.php b/NetApp/src/V1/Protocols.php
new file mode 100644
index 00000000000..7f812f6a9ee
--- /dev/null
+++ b/NetApp/src/V1/Protocols.php
@@ -0,0 +1,66 @@
+google.cloud.netapp.v1.Protocols
+ */
+class Protocols
+{
+ /**
+ * Unspecified protocol
+ *
+ * Generated from protobuf enum PROTOCOLS_UNSPECIFIED = 0;
+ */
+ const PROTOCOLS_UNSPECIFIED = 0;
+ /**
+ * NFS V3 protocol
+ *
+ * Generated from protobuf enum NFSV3 = 1;
+ */
+ const NFSV3 = 1;
+ /**
+ * NFS V4 protocol
+ *
+ * Generated from protobuf enum NFSV4 = 2;
+ */
+ const NFSV4 = 2;
+ /**
+ * SMB protocol
+ *
+ * Generated from protobuf enum SMB = 3;
+ */
+ const SMB = 3;
+
+ private static $valueToName = [
+ self::PROTOCOLS_UNSPECIFIED => 'PROTOCOLS_UNSPECIFIED',
+ self::NFSV3 => 'NFSV3',
+ self::NFSV4 => 'NFSV4',
+ self::SMB => 'SMB',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/NetApp/src/V1/Replication.php b/NetApp/src/V1/Replication.php
new file mode 100644
index 00000000000..342b51ffd08
--- /dev/null
+++ b/NetApp/src/V1/Replication.php
@@ -0,0 +1,593 @@
+google.cloud.netapp.v1.Replication
+ */
+class Replication extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The resource name of the Replication.
+ * Format:
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. State of the replication.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication.State state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. State details of the replication.
+ *
+ * Generated from protobuf field string state_details = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state_details = '';
+ /**
+ * Output only. Indicates whether this points to source or destination.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication.ReplicationRole role = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $role = 0;
+ /**
+ * Required. Indicates the schedule for replication.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication.ReplicationSchedule replication_schedule = 5 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $replication_schedule = 0;
+ /**
+ * Output only. Indicates the state of mirroring.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication.MirrorState mirror_state = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $mirror_state = 0;
+ /**
+ * Output only. Condition of the relationship. Can be one of the following:
+ * - true: The replication relationship is healthy. It has not missed the most
+ * recent scheduled transfer.
+ * - false: The replication relationship is not healthy. It has missed the
+ * most recent scheduled transfer.
+ *
+ * Generated from protobuf field optional bool healthy = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $healthy = null;
+ /**
+ * Output only. Replication create time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Full name of destination volume resource.
+ * Example : "projects/{project}/locations/{location}/volumes/{volume_id}"
+ *
+ * Generated from protobuf field string destination_volume = 10 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $destination_volume = '';
+ /**
+ * Output only. Replication transfer statistics.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.TransferStats transfer_stats = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $transfer_stats = null;
+ /**
+ * Resource labels to represent user provided metadata.
+ *
+ * Generated from protobuf field map labels = 12;
+ */
+ private $labels;
+ /**
+ * A description about this replication relationship.
+ *
+ * Generated from protobuf field optional string description = 13;
+ */
+ protected $description = null;
+ /**
+ * Required. Input only. Destination volume parameters
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.DestinationVolumeParameters destination_volume_parameters = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = REQUIRED];
+ */
+ protected $destination_volume_parameters = null;
+ /**
+ * Output only. Full name of source volume resource.
+ * Example : "projects/{project}/locations/{location}/volumes/{volume_id}"
+ *
+ * Generated from protobuf field string source_volume = 15 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $source_volume = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The resource name of the Replication.
+ * Format:
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}`.
+ * @type int $state
+ * Output only. State of the replication.
+ * @type string $state_details
+ * Output only. State details of the replication.
+ * @type int $role
+ * Output only. Indicates whether this points to source or destination.
+ * @type int $replication_schedule
+ * Required. Indicates the schedule for replication.
+ * @type int $mirror_state
+ * Output only. Indicates the state of mirroring.
+ * @type bool $healthy
+ * Output only. Condition of the relationship. Can be one of the following:
+ * - true: The replication relationship is healthy. It has not missed the most
+ * recent scheduled transfer.
+ * - false: The replication relationship is not healthy. It has missed the
+ * most recent scheduled transfer.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Replication create time.
+ * @type string $destination_volume
+ * Output only. Full name of destination volume resource.
+ * Example : "projects/{project}/locations/{location}/volumes/{volume_id}"
+ * @type \Google\Cloud\NetApp\V1\TransferStats $transfer_stats
+ * Output only. Replication transfer statistics.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Resource labels to represent user provided metadata.
+ * @type string $description
+ * A description about this replication relationship.
+ * @type \Google\Cloud\NetApp\V1\DestinationVolumeParameters $destination_volume_parameters
+ * Required. Input only. Destination volume parameters
+ * @type string $source_volume
+ * Output only. Full name of source volume resource.
+ * Example : "projects/{project}/locations/{location}/volumes/{volume_id}"
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Replication::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The resource name of the Replication.
+ * Format:
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The resource name of the Replication.
+ * Format:
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. State of the replication.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication.State state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. State of the replication.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication.State state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\Replication\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. State details of the replication.
+ *
+ * Generated from protobuf field string state_details = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStateDetails()
+ {
+ return $this->state_details;
+ }
+
+ /**
+ * Output only. State details of the replication.
+ *
+ * Generated from protobuf field string state_details = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStateDetails($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->state_details = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Indicates whether this points to source or destination.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication.ReplicationRole role = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getRole()
+ {
+ return $this->role;
+ }
+
+ /**
+ * Output only. Indicates whether this points to source or destination.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication.ReplicationRole role = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setRole($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\Replication\ReplicationRole::class);
+ $this->role = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Indicates the schedule for replication.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication.ReplicationSchedule replication_schedule = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getReplicationSchedule()
+ {
+ return $this->replication_schedule;
+ }
+
+ /**
+ * Required. Indicates the schedule for replication.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication.ReplicationSchedule replication_schedule = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setReplicationSchedule($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\Replication\ReplicationSchedule::class);
+ $this->replication_schedule = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Indicates the state of mirroring.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication.MirrorState mirror_state = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getMirrorState()
+ {
+ return $this->mirror_state;
+ }
+
+ /**
+ * Output only. Indicates the state of mirroring.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication.MirrorState mirror_state = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setMirrorState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\Replication\MirrorState::class);
+ $this->mirror_state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Condition of the relationship. Can be one of the following:
+ * - true: The replication relationship is healthy. It has not missed the most
+ * recent scheduled transfer.
+ * - false: The replication relationship is not healthy. It has missed the
+ * most recent scheduled transfer.
+ *
+ * Generated from protobuf field optional bool healthy = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getHealthy()
+ {
+ return isset($this->healthy) ? $this->healthy : false;
+ }
+
+ public function hasHealthy()
+ {
+ return isset($this->healthy);
+ }
+
+ public function clearHealthy()
+ {
+ unset($this->healthy);
+ }
+
+ /**
+ * Output only. Condition of the relationship. Can be one of the following:
+ * - true: The replication relationship is healthy. It has not missed the most
+ * recent scheduled transfer.
+ * - false: The replication relationship is not healthy. It has missed the
+ * most recent scheduled transfer.
+ *
+ * Generated from protobuf field optional bool healthy = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setHealthy($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->healthy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Replication create time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Replication create time.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Full name of destination volume resource.
+ * Example : "projects/{project}/locations/{location}/volumes/{volume_id}"
+ *
+ * Generated from protobuf field string destination_volume = 10 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getDestinationVolume()
+ {
+ return $this->destination_volume;
+ }
+
+ /**
+ * Output only. Full name of destination volume resource.
+ * Example : "projects/{project}/locations/{location}/volumes/{volume_id}"
+ *
+ * Generated from protobuf field string destination_volume = 10 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setDestinationVolume($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->destination_volume = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Replication transfer statistics.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.TransferStats transfer_stats = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\NetApp\V1\TransferStats|null
+ */
+ public function getTransferStats()
+ {
+ return $this->transfer_stats;
+ }
+
+ public function hasTransferStats()
+ {
+ return isset($this->transfer_stats);
+ }
+
+ public function clearTransferStats()
+ {
+ unset($this->transfer_stats);
+ }
+
+ /**
+ * Output only. Replication transfer statistics.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.TransferStats transfer_stats = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\NetApp\V1\TransferStats $var
+ * @return $this
+ */
+ public function setTransferStats($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\TransferStats::class);
+ $this->transfer_stats = $var;
+
+ return $this;
+ }
+
+ /**
+ * Resource labels to represent user provided metadata.
+ *
+ * Generated from protobuf field map labels = 12;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Resource labels to represent user provided metadata.
+ *
+ * Generated from protobuf field map labels = 12;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A description about this replication relationship.
+ *
+ * Generated from protobuf field optional string description = 13;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return isset($this->description) ? $this->description : '';
+ }
+
+ public function hasDescription()
+ {
+ return isset($this->description);
+ }
+
+ public function clearDescription()
+ {
+ unset($this->description);
+ }
+
+ /**
+ * A description about this replication relationship.
+ *
+ * Generated from protobuf field optional string description = 13;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Input only. Destination volume parameters
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.DestinationVolumeParameters destination_volume_parameters = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\NetApp\V1\DestinationVolumeParameters|null
+ */
+ public function getDestinationVolumeParameters()
+ {
+ return $this->destination_volume_parameters;
+ }
+
+ public function hasDestinationVolumeParameters()
+ {
+ return isset($this->destination_volume_parameters);
+ }
+
+ public function clearDestinationVolumeParameters()
+ {
+ unset($this->destination_volume_parameters);
+ }
+
+ /**
+ * Required. Input only. Destination volume parameters
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.DestinationVolumeParameters destination_volume_parameters = 14 [(.google.api.field_behavior) = INPUT_ONLY, (.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\NetApp\V1\DestinationVolumeParameters $var
+ * @return $this
+ */
+ public function setDestinationVolumeParameters($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\DestinationVolumeParameters::class);
+ $this->destination_volume_parameters = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Full name of source volume resource.
+ * Example : "projects/{project}/locations/{location}/volumes/{volume_id}"
+ *
+ * Generated from protobuf field string source_volume = 15 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getSourceVolume()
+ {
+ return $this->source_volume;
+ }
+
+ /**
+ * Output only. Full name of source volume resource.
+ * Example : "projects/{project}/locations/{location}/volumes/{volume_id}"
+ *
+ * Generated from protobuf field string source_volume = 15 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setSourceVolume($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->source_volume = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/Replication/MirrorState.php b/NetApp/src/V1/Replication/MirrorState.php
new file mode 100644
index 00000000000..ea117456c3f
--- /dev/null
+++ b/NetApp/src/V1/Replication/MirrorState.php
@@ -0,0 +1,78 @@
+google.cloud.netapp.v1.Replication.MirrorState
+ */
+class MirrorState
+{
+ /**
+ * Unspecified MirrorState
+ *
+ * Generated from protobuf enum MIRROR_STATE_UNSPECIFIED = 0;
+ */
+ const MIRROR_STATE_UNSPECIFIED = 0;
+ /**
+ * Destination volume is being prepared.
+ *
+ * Generated from protobuf enum PREPARING = 1;
+ */
+ const PREPARING = 1;
+ /**
+ * Destination volume has been initialized and is ready to receive
+ * replication transfers.
+ *
+ * Generated from protobuf enum MIRRORED = 2;
+ */
+ const MIRRORED = 2;
+ /**
+ * Destination volume is not receiving replication transfers.
+ *
+ * Generated from protobuf enum STOPPED = 3;
+ */
+ const STOPPED = 3;
+ /**
+ * Replication is in progress.
+ *
+ * Generated from protobuf enum TRANSFERRING = 4;
+ */
+ const TRANSFERRING = 4;
+
+ private static $valueToName = [
+ self::MIRROR_STATE_UNSPECIFIED => 'MIRROR_STATE_UNSPECIFIED',
+ self::PREPARING => 'PREPARING',
+ self::MIRRORED => 'MIRRORED',
+ self::STOPPED => 'STOPPED',
+ self::TRANSFERRING => 'TRANSFERRING',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+
diff --git a/NetApp/src/V1/Replication/ReplicationRole.php b/NetApp/src/V1/Replication/ReplicationRole.php
new file mode 100644
index 00000000000..9cc75eb0615
--- /dev/null
+++ b/NetApp/src/V1/Replication/ReplicationRole.php
@@ -0,0 +1,63 @@
+google.cloud.netapp.v1.Replication.ReplicationRole
+ */
+class ReplicationRole
+{
+ /**
+ * Unspecified replication role
+ *
+ * Generated from protobuf enum REPLICATION_ROLE_UNSPECIFIED = 0;
+ */
+ const REPLICATION_ROLE_UNSPECIFIED = 0;
+ /**
+ * Indicates Source volume.
+ *
+ * Generated from protobuf enum SOURCE = 1;
+ */
+ const SOURCE = 1;
+ /**
+ * Indicates Destination volume.
+ *
+ * Generated from protobuf enum DESTINATION = 2;
+ */
+ const DESTINATION = 2;
+
+ private static $valueToName = [
+ self::REPLICATION_ROLE_UNSPECIFIED => 'REPLICATION_ROLE_UNSPECIFIED',
+ self::SOURCE => 'SOURCE',
+ self::DESTINATION => 'DESTINATION',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+
diff --git a/NetApp/src/V1/Replication/ReplicationSchedule.php b/NetApp/src/V1/Replication/ReplicationSchedule.php
new file mode 100644
index 00000000000..1d984614455
--- /dev/null
+++ b/NetApp/src/V1/Replication/ReplicationSchedule.php
@@ -0,0 +1,71 @@
+google.cloud.netapp.v1.Replication.ReplicationSchedule
+ */
+class ReplicationSchedule
+{
+ /**
+ * Unspecified ReplicationSchedule
+ *
+ * Generated from protobuf enum REPLICATION_SCHEDULE_UNSPECIFIED = 0;
+ */
+ const REPLICATION_SCHEDULE_UNSPECIFIED = 0;
+ /**
+ * Replication happens once every 10 minutes.
+ *
+ * Generated from protobuf enum EVERY_10_MINUTES = 1;
+ */
+ const EVERY_10_MINUTES = 1;
+ /**
+ * Replication happens once every hour.
+ *
+ * Generated from protobuf enum HOURLY = 2;
+ */
+ const HOURLY = 2;
+ /**
+ * Replication happens once every day.
+ *
+ * Generated from protobuf enum DAILY = 3;
+ */
+ const DAILY = 3;
+
+ private static $valueToName = [
+ self::REPLICATION_SCHEDULE_UNSPECIFIED => 'REPLICATION_SCHEDULE_UNSPECIFIED',
+ self::EVERY_10_MINUTES => 'EVERY_10_MINUTES',
+ self::HOURLY => 'HOURLY',
+ self::DAILY => 'DAILY',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+
diff --git a/NetApp/src/V1/Replication/State.php b/NetApp/src/V1/Replication/State.php
new file mode 100644
index 00000000000..a3e0db5aa14
--- /dev/null
+++ b/NetApp/src/V1/Replication/State.php
@@ -0,0 +1,84 @@
+google.cloud.netapp.v1.Replication.State
+ */
+class State
+{
+ /**
+ * Unspecified replication State
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * Replication is creating.
+ *
+ * Generated from protobuf enum CREATING = 1;
+ */
+ const CREATING = 1;
+ /**
+ * Replication is ready.
+ *
+ * Generated from protobuf enum READY = 2;
+ */
+ const READY = 2;
+ /**
+ * Replication is updating.
+ *
+ * Generated from protobuf enum UPDATING = 3;
+ */
+ const UPDATING = 3;
+ /**
+ * Replication is deleting.
+ *
+ * Generated from protobuf enum DELETING = 5;
+ */
+ const DELETING = 5;
+ /**
+ * Replication is in error state.
+ *
+ * Generated from protobuf enum ERROR = 6;
+ */
+ const ERROR = 6;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::CREATING => 'CREATING',
+ self::READY => 'READY',
+ self::UPDATING => 'UPDATING',
+ self::DELETING => 'DELETING',
+ self::ERROR => 'ERROR',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+
diff --git a/NetApp/src/V1/RestoreParameters.php b/NetApp/src/V1/RestoreParameters.php
new file mode 100644
index 00000000000..d172cfdd78c
--- /dev/null
+++ b/NetApp/src/V1/RestoreParameters.php
@@ -0,0 +1,81 @@
+google.cloud.netapp.v1.RestoreParameters
+ */
+class RestoreParameters extends \Google\Protobuf\Internal\Message
+{
+ protected $source;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $source_snapshot
+ * Full name of the snapshot resource.
+ * Format:
+ * projects/{project}/locations/{location}/volumes/{volume}/snapshots/{snapshot}
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Full name of the snapshot resource.
+ * Format:
+ * projects/{project}/locations/{location}/volumes/{volume}/snapshots/{snapshot}
+ *
+ * Generated from protobuf field string source_snapshot = 1;
+ * @return string
+ */
+ public function getSourceSnapshot()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasSourceSnapshot()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Full name of the snapshot resource.
+ * Format:
+ * projects/{project}/locations/{location}/volumes/{volume}/snapshots/{snapshot}
+ *
+ * Generated from protobuf field string source_snapshot = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setSourceSnapshot($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSource()
+ {
+ return $this->whichOneof("source");
+ }
+
+}
+
diff --git a/NetApp/src/V1/RestrictedAction.php b/NetApp/src/V1/RestrictedAction.php
new file mode 100644
index 00000000000..7c989039291
--- /dev/null
+++ b/NetApp/src/V1/RestrictedAction.php
@@ -0,0 +1,54 @@
+google.cloud.netapp.v1.RestrictedAction
+ */
+class RestrictedAction
+{
+ /**
+ * Unspecified restricted action
+ *
+ * Generated from protobuf enum RESTRICTED_ACTION_UNSPECIFIED = 0;
+ */
+ const RESTRICTED_ACTION_UNSPECIFIED = 0;
+ /**
+ * Prevent volume from being deleted when mounted.
+ *
+ * Generated from protobuf enum DELETE = 1;
+ */
+ const DELETE = 1;
+
+ private static $valueToName = [
+ self::RESTRICTED_ACTION_UNSPECIFIED => 'RESTRICTED_ACTION_UNSPECIFIED',
+ self::DELETE => 'DELETE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/NetApp/src/V1/ResumeReplicationRequest.php b/NetApp/src/V1/ResumeReplicationRequest.php
new file mode 100644
index 00000000000..2217e1e454f
--- /dev/null
+++ b/NetApp/src/V1/ResumeReplicationRequest.php
@@ -0,0 +1,71 @@
+google.cloud.netapp.v1.ResumeReplicationRequest
+ */
+class ResumeReplicationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the replication, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The resource name of the replication, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Replication::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the replication, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The resource name of the replication, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/ReverseReplicationDirectionRequest.php b/NetApp/src/V1/ReverseReplicationDirectionRequest.php
new file mode 100644
index 00000000000..6f01e9c7979
--- /dev/null
+++ b/NetApp/src/V1/ReverseReplicationDirectionRequest.php
@@ -0,0 +1,72 @@
+google.cloud.netapp.v1.ReverseReplicationDirectionRequest
+ */
+class ReverseReplicationDirectionRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the replication, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The resource name of the replication, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Replication::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the replication, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The resource name of the replication, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/RevertVolumeRequest.php b/NetApp/src/V1/RevertVolumeRequest.php
new file mode 100644
index 00000000000..b767dafea3e
--- /dev/null
+++ b/NetApp/src/V1/RevertVolumeRequest.php
@@ -0,0 +1,113 @@
+google.cloud.netapp.v1.RevertVolumeRequest
+ */
+class RevertVolumeRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the volume, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Required. The snapshot resource ID, in the format 'my-snapshot', where the
+ * specified ID is the {snapshot_id} of the fully qualified name like
+ * projects/{project_id}/locations/{location_id}/volumes/{volume_id}/snapshots/{snapshot_id}
+ *
+ * Generated from protobuf field string snapshot_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $snapshot_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The resource name of the volume, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}.
+ * @type string $snapshot_id
+ * Required. The snapshot resource ID, in the format 'my-snapshot', where the
+ * specified ID is the {snapshot_id} of the fully qualified name like
+ * projects/{project_id}/locations/{location_id}/volumes/{volume_id}/snapshots/{snapshot_id}
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the volume, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The resource name of the volume, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The snapshot resource ID, in the format 'my-snapshot', where the
+ * specified ID is the {snapshot_id} of the fully qualified name like
+ * projects/{project_id}/locations/{location_id}/volumes/{volume_id}/snapshots/{snapshot_id}
+ *
+ * Generated from protobuf field string snapshot_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getSnapshotId()
+ {
+ return $this->snapshot_id;
+ }
+
+ /**
+ * Required. The snapshot resource ID, in the format 'my-snapshot', where the
+ * specified ID is the {snapshot_id} of the fully qualified name like
+ * projects/{project_id}/locations/{location_id}/volumes/{volume_id}/snapshots/{snapshot_id}
+ *
+ * Generated from protobuf field string snapshot_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setSnapshotId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->snapshot_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/SMBSettings.php b/NetApp/src/V1/SMBSettings.php
new file mode 100644
index 00000000000..4f42ef7caab
--- /dev/null
+++ b/NetApp/src/V1/SMBSettings.php
@@ -0,0 +1,111 @@
+google.cloud.netapp.v1.SMBSettings
+ */
+class SMBSettings
+{
+ /**
+ * Unspecified default option
+ *
+ * Generated from protobuf enum SMB_SETTINGS_UNSPECIFIED = 0;
+ */
+ const SMB_SETTINGS_UNSPECIFIED = 0;
+ /**
+ * SMB setting encrypt data
+ *
+ * Generated from protobuf enum ENCRYPT_DATA = 1;
+ */
+ const ENCRYPT_DATA = 1;
+ /**
+ * SMB setting browsable
+ *
+ * Generated from protobuf enum BROWSABLE = 2;
+ */
+ const BROWSABLE = 2;
+ /**
+ * SMB setting notify change
+ *
+ * Generated from protobuf enum CHANGE_NOTIFY = 3;
+ */
+ const CHANGE_NOTIFY = 3;
+ /**
+ * SMB setting not to notify change
+ *
+ * Generated from protobuf enum NON_BROWSABLE = 4;
+ */
+ const NON_BROWSABLE = 4;
+ /**
+ * SMB setting oplocks
+ *
+ * Generated from protobuf enum OPLOCKS = 5;
+ */
+ const OPLOCKS = 5;
+ /**
+ * SMB setting to show snapshots
+ *
+ * Generated from protobuf enum SHOW_SNAPSHOT = 6;
+ */
+ const SHOW_SNAPSHOT = 6;
+ /**
+ * SMB setting to show previous versions
+ *
+ * Generated from protobuf enum SHOW_PREVIOUS_VERSIONS = 7;
+ */
+ const SHOW_PREVIOUS_VERSIONS = 7;
+ /**
+ * SMB setting to access volume based on enumerartion
+ *
+ * Generated from protobuf enum ACCESS_BASED_ENUMERATION = 8;
+ */
+ const ACCESS_BASED_ENUMERATION = 8;
+ /**
+ * Continuously available enumeration
+ *
+ * Generated from protobuf enum CONTINUOUSLY_AVAILABLE = 9;
+ */
+ const CONTINUOUSLY_AVAILABLE = 9;
+
+ private static $valueToName = [
+ self::SMB_SETTINGS_UNSPECIFIED => 'SMB_SETTINGS_UNSPECIFIED',
+ self::ENCRYPT_DATA => 'ENCRYPT_DATA',
+ self::BROWSABLE => 'BROWSABLE',
+ self::CHANGE_NOTIFY => 'CHANGE_NOTIFY',
+ self::NON_BROWSABLE => 'NON_BROWSABLE',
+ self::OPLOCKS => 'OPLOCKS',
+ self::SHOW_SNAPSHOT => 'SHOW_SNAPSHOT',
+ self::SHOW_PREVIOUS_VERSIONS => 'SHOW_PREVIOUS_VERSIONS',
+ self::ACCESS_BASED_ENUMERATION => 'ACCESS_BASED_ENUMERATION',
+ self::CONTINUOUSLY_AVAILABLE => 'CONTINUOUSLY_AVAILABLE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/NetApp/src/V1/SecurityStyle.php b/NetApp/src/V1/SecurityStyle.php
new file mode 100644
index 00000000000..39cfde9f52c
--- /dev/null
+++ b/NetApp/src/V1/SecurityStyle.php
@@ -0,0 +1,61 @@
+google.cloud.netapp.v1.SecurityStyle
+ */
+class SecurityStyle
+{
+ /**
+ * SecurityStyle is unspecified
+ *
+ * Generated from protobuf enum SECURITY_STYLE_UNSPECIFIED = 0;
+ */
+ const SECURITY_STYLE_UNSPECIFIED = 0;
+ /**
+ * SecurityStyle uses NTFS
+ *
+ * Generated from protobuf enum NTFS = 1;
+ */
+ const NTFS = 1;
+ /**
+ * SecurityStyle uses NTFS
+ *
+ * Generated from protobuf enum UNIX = 2;
+ */
+ const UNIX = 2;
+
+ private static $valueToName = [
+ self::SECURITY_STYLE_UNSPECIFIED => 'SECURITY_STYLE_UNSPECIFIED',
+ self::NTFS => 'NTFS',
+ self::UNIX => 'UNIX',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/NetApp/src/V1/ServiceLevel.php b/NetApp/src/V1/ServiceLevel.php
new file mode 100644
index 00000000000..62d6a534c9d
--- /dev/null
+++ b/NetApp/src/V1/ServiceLevel.php
@@ -0,0 +1,62 @@
+google.cloud.netapp.v1.ServiceLevel
+ */
+class ServiceLevel
+{
+ /**
+ * Generated from protobuf enum SERVICE_LEVEL_UNSPECIFIED = 0;
+ */
+ const SERVICE_LEVEL_UNSPECIFIED = 0;
+ /**
+ * Generated from protobuf enum PREMIUM = 1;
+ */
+ const PREMIUM = 1;
+ /**
+ * Generated from protobuf enum EXTREME = 2;
+ */
+ const EXTREME = 2;
+ /**
+ * Standard (Software offering)
+ *
+ * Generated from protobuf enum STANDARD = 3;
+ */
+ const STANDARD = 3;
+
+ private static $valueToName = [
+ self::SERVICE_LEVEL_UNSPECIFIED => 'SERVICE_LEVEL_UNSPECIFIED',
+ self::PREMIUM => 'PREMIUM',
+ self::EXTREME => 'EXTREME',
+ self::STANDARD => 'STANDARD',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/NetApp/src/V1/SimpleExportPolicyRule.php b/NetApp/src/V1/SimpleExportPolicyRule.php
new file mode 100644
index 00000000000..6008af6ff18
--- /dev/null
+++ b/NetApp/src/V1/SimpleExportPolicyRule.php
@@ -0,0 +1,577 @@
+google.cloud.netapp.v1.SimpleExportPolicyRule
+ */
+class SimpleExportPolicyRule extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Comma separated list of allowed clients IP addresses
+ *
+ * Generated from protobuf field optional string allowed_clients = 1;
+ */
+ protected $allowed_clients = null;
+ /**
+ * Whether Unix root access will be granted.
+ *
+ * Generated from protobuf field optional string has_root_access = 2;
+ */
+ protected $has_root_access = null;
+ /**
+ * Access type (ReadWrite, ReadOnly, None)
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.AccessType access_type = 3;
+ */
+ protected $access_type = null;
+ /**
+ * NFS V3 protocol.
+ *
+ * Generated from protobuf field optional bool nfsv3 = 4;
+ */
+ protected $nfsv3 = null;
+ /**
+ * NFS V4 protocol.
+ *
+ * Generated from protobuf field optional bool nfsv4 = 5;
+ */
+ protected $nfsv4 = null;
+ /**
+ * If enabled (true) the rule defines a read only access for clients matching
+ * the 'allowedClients' specification. It enables nfs clients to mount using
+ * 'authentication' kerberos security mode.
+ *
+ * Generated from protobuf field optional bool kerberos_5_read_only = 6;
+ */
+ protected $kerberos_5_read_only = null;
+ /**
+ * If enabled (true) the rule defines read and write access for clients
+ * matching the 'allowedClients' specification. It enables nfs clients to
+ * mount using 'authentication' kerberos security mode. The
+ * 'kerberos5ReadOnly' value be ignored if this is enabled.
+ *
+ * Generated from protobuf field optional bool kerberos_5_read_write = 7;
+ */
+ protected $kerberos_5_read_write = null;
+ /**
+ * If enabled (true) the rule defines a read only access for clients matching
+ * the 'allowedClients' specification. It enables nfs clients to mount using
+ * 'integrity' kerberos security mode.
+ *
+ * Generated from protobuf field optional bool kerberos_5i_read_only = 8;
+ */
+ protected $kerberos_5i_read_only = null;
+ /**
+ * If enabled (true) the rule defines read and write access for clients
+ * matching the 'allowedClients' specification. It enables nfs clients to
+ * mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly'
+ * value be ignored if this is enabled.
+ *
+ * Generated from protobuf field optional bool kerberos_5i_read_write = 9;
+ */
+ protected $kerberos_5i_read_write = null;
+ /**
+ * If enabled (true) the rule defines a read only access for clients matching
+ * the 'allowedClients' specification. It enables nfs clients to mount using
+ * 'privacy' kerberos security mode.
+ *
+ * Generated from protobuf field optional bool kerberos_5p_read_only = 10;
+ */
+ protected $kerberos_5p_read_only = null;
+ /**
+ * If enabled (true) the rule defines read and write access for clients
+ * matching the 'allowedClients' specification. It enables nfs clients to
+ * mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly'
+ * value be ignored if this is enabled.
+ *
+ * Generated from protobuf field optional bool kerberos_5p_read_write = 11;
+ */
+ protected $kerberos_5p_read_write = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $allowed_clients
+ * Comma separated list of allowed clients IP addresses
+ * @type string $has_root_access
+ * Whether Unix root access will be granted.
+ * @type int $access_type
+ * Access type (ReadWrite, ReadOnly, None)
+ * @type bool $nfsv3
+ * NFS V3 protocol.
+ * @type bool $nfsv4
+ * NFS V4 protocol.
+ * @type bool $kerberos_5_read_only
+ * If enabled (true) the rule defines a read only access for clients matching
+ * the 'allowedClients' specification. It enables nfs clients to mount using
+ * 'authentication' kerberos security mode.
+ * @type bool $kerberos_5_read_write
+ * If enabled (true) the rule defines read and write access for clients
+ * matching the 'allowedClients' specification. It enables nfs clients to
+ * mount using 'authentication' kerberos security mode. The
+ * 'kerberos5ReadOnly' value be ignored if this is enabled.
+ * @type bool $kerberos_5i_read_only
+ * If enabled (true) the rule defines a read only access for clients matching
+ * the 'allowedClients' specification. It enables nfs clients to mount using
+ * 'integrity' kerberos security mode.
+ * @type bool $kerberos_5i_read_write
+ * If enabled (true) the rule defines read and write access for clients
+ * matching the 'allowedClients' specification. It enables nfs clients to
+ * mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly'
+ * value be ignored if this is enabled.
+ * @type bool $kerberos_5p_read_only
+ * If enabled (true) the rule defines a read only access for clients matching
+ * the 'allowedClients' specification. It enables nfs clients to mount using
+ * 'privacy' kerberos security mode.
+ * @type bool $kerberos_5p_read_write
+ * If enabled (true) the rule defines read and write access for clients
+ * matching the 'allowedClients' specification. It enables nfs clients to
+ * mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly'
+ * value be ignored if this is enabled.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Comma separated list of allowed clients IP addresses
+ *
+ * Generated from protobuf field optional string allowed_clients = 1;
+ * @return string
+ */
+ public function getAllowedClients()
+ {
+ return isset($this->allowed_clients) ? $this->allowed_clients : '';
+ }
+
+ public function hasAllowedClients()
+ {
+ return isset($this->allowed_clients);
+ }
+
+ public function clearAllowedClients()
+ {
+ unset($this->allowed_clients);
+ }
+
+ /**
+ * Comma separated list of allowed clients IP addresses
+ *
+ * Generated from protobuf field optional string allowed_clients = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setAllowedClients($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->allowed_clients = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether Unix root access will be granted.
+ *
+ * Generated from protobuf field optional string has_root_access = 2;
+ * @return string
+ */
+ public function getHasRootAccess()
+ {
+ return isset($this->has_root_access) ? $this->has_root_access : '';
+ }
+
+ public function hasHasRootAccess()
+ {
+ return isset($this->has_root_access);
+ }
+
+ public function clearHasRootAccess()
+ {
+ unset($this->has_root_access);
+ }
+
+ /**
+ * Whether Unix root access will be granted.
+ *
+ * Generated from protobuf field optional string has_root_access = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setHasRootAccess($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->has_root_access = $var;
+
+ return $this;
+ }
+
+ /**
+ * Access type (ReadWrite, ReadOnly, None)
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.AccessType access_type = 3;
+ * @return int
+ */
+ public function getAccessType()
+ {
+ return isset($this->access_type) ? $this->access_type : 0;
+ }
+
+ public function hasAccessType()
+ {
+ return isset($this->access_type);
+ }
+
+ public function clearAccessType()
+ {
+ unset($this->access_type);
+ }
+
+ /**
+ * Access type (ReadWrite, ReadOnly, None)
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.AccessType access_type = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setAccessType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\AccessType::class);
+ $this->access_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * NFS V3 protocol.
+ *
+ * Generated from protobuf field optional bool nfsv3 = 4;
+ * @return bool
+ */
+ public function getNfsv3()
+ {
+ return isset($this->nfsv3) ? $this->nfsv3 : false;
+ }
+
+ public function hasNfsv3()
+ {
+ return isset($this->nfsv3);
+ }
+
+ public function clearNfsv3()
+ {
+ unset($this->nfsv3);
+ }
+
+ /**
+ * NFS V3 protocol.
+ *
+ * Generated from protobuf field optional bool nfsv3 = 4;
+ * @param bool $var
+ * @return $this
+ */
+ public function setNfsv3($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->nfsv3 = $var;
+
+ return $this;
+ }
+
+ /**
+ * NFS V4 protocol.
+ *
+ * Generated from protobuf field optional bool nfsv4 = 5;
+ * @return bool
+ */
+ public function getNfsv4()
+ {
+ return isset($this->nfsv4) ? $this->nfsv4 : false;
+ }
+
+ public function hasNfsv4()
+ {
+ return isset($this->nfsv4);
+ }
+
+ public function clearNfsv4()
+ {
+ unset($this->nfsv4);
+ }
+
+ /**
+ * NFS V4 protocol.
+ *
+ * Generated from protobuf field optional bool nfsv4 = 5;
+ * @param bool $var
+ * @return $this
+ */
+ public function setNfsv4($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->nfsv4 = $var;
+
+ return $this;
+ }
+
+ /**
+ * If enabled (true) the rule defines a read only access for clients matching
+ * the 'allowedClients' specification. It enables nfs clients to mount using
+ * 'authentication' kerberos security mode.
+ *
+ * Generated from protobuf field optional bool kerberos_5_read_only = 6;
+ * @return bool
+ */
+ public function getKerberos5ReadOnly()
+ {
+ return isset($this->kerberos_5_read_only) ? $this->kerberos_5_read_only : false;
+ }
+
+ public function hasKerberos5ReadOnly()
+ {
+ return isset($this->kerberos_5_read_only);
+ }
+
+ public function clearKerberos5ReadOnly()
+ {
+ unset($this->kerberos_5_read_only);
+ }
+
+ /**
+ * If enabled (true) the rule defines a read only access for clients matching
+ * the 'allowedClients' specification. It enables nfs clients to mount using
+ * 'authentication' kerberos security mode.
+ *
+ * Generated from protobuf field optional bool kerberos_5_read_only = 6;
+ * @param bool $var
+ * @return $this
+ */
+ public function setKerberos5ReadOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->kerberos_5_read_only = $var;
+
+ return $this;
+ }
+
+ /**
+ * If enabled (true) the rule defines read and write access for clients
+ * matching the 'allowedClients' specification. It enables nfs clients to
+ * mount using 'authentication' kerberos security mode. The
+ * 'kerberos5ReadOnly' value be ignored if this is enabled.
+ *
+ * Generated from protobuf field optional bool kerberos_5_read_write = 7;
+ * @return bool
+ */
+ public function getKerberos5ReadWrite()
+ {
+ return isset($this->kerberos_5_read_write) ? $this->kerberos_5_read_write : false;
+ }
+
+ public function hasKerberos5ReadWrite()
+ {
+ return isset($this->kerberos_5_read_write);
+ }
+
+ public function clearKerberos5ReadWrite()
+ {
+ unset($this->kerberos_5_read_write);
+ }
+
+ /**
+ * If enabled (true) the rule defines read and write access for clients
+ * matching the 'allowedClients' specification. It enables nfs clients to
+ * mount using 'authentication' kerberos security mode. The
+ * 'kerberos5ReadOnly' value be ignored if this is enabled.
+ *
+ * Generated from protobuf field optional bool kerberos_5_read_write = 7;
+ * @param bool $var
+ * @return $this
+ */
+ public function setKerberos5ReadWrite($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->kerberos_5_read_write = $var;
+
+ return $this;
+ }
+
+ /**
+ * If enabled (true) the rule defines a read only access for clients matching
+ * the 'allowedClients' specification. It enables nfs clients to mount using
+ * 'integrity' kerberos security mode.
+ *
+ * Generated from protobuf field optional bool kerberos_5i_read_only = 8;
+ * @return bool
+ */
+ public function getKerberos5IReadOnly()
+ {
+ return isset($this->kerberos_5i_read_only) ? $this->kerberos_5i_read_only : false;
+ }
+
+ public function hasKerberos5IReadOnly()
+ {
+ return isset($this->kerberos_5i_read_only);
+ }
+
+ public function clearKerberos5IReadOnly()
+ {
+ unset($this->kerberos_5i_read_only);
+ }
+
+ /**
+ * If enabled (true) the rule defines a read only access for clients matching
+ * the 'allowedClients' specification. It enables nfs clients to mount using
+ * 'integrity' kerberos security mode.
+ *
+ * Generated from protobuf field optional bool kerberos_5i_read_only = 8;
+ * @param bool $var
+ * @return $this
+ */
+ public function setKerberos5IReadOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->kerberos_5i_read_only = $var;
+
+ return $this;
+ }
+
+ /**
+ * If enabled (true) the rule defines read and write access for clients
+ * matching the 'allowedClients' specification. It enables nfs clients to
+ * mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly'
+ * value be ignored if this is enabled.
+ *
+ * Generated from protobuf field optional bool kerberos_5i_read_write = 9;
+ * @return bool
+ */
+ public function getKerberos5IReadWrite()
+ {
+ return isset($this->kerberos_5i_read_write) ? $this->kerberos_5i_read_write : false;
+ }
+
+ public function hasKerberos5IReadWrite()
+ {
+ return isset($this->kerberos_5i_read_write);
+ }
+
+ public function clearKerberos5IReadWrite()
+ {
+ unset($this->kerberos_5i_read_write);
+ }
+
+ /**
+ * If enabled (true) the rule defines read and write access for clients
+ * matching the 'allowedClients' specification. It enables nfs clients to
+ * mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly'
+ * value be ignored if this is enabled.
+ *
+ * Generated from protobuf field optional bool kerberos_5i_read_write = 9;
+ * @param bool $var
+ * @return $this
+ */
+ public function setKerberos5IReadWrite($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->kerberos_5i_read_write = $var;
+
+ return $this;
+ }
+
+ /**
+ * If enabled (true) the rule defines a read only access for clients matching
+ * the 'allowedClients' specification. It enables nfs clients to mount using
+ * 'privacy' kerberos security mode.
+ *
+ * Generated from protobuf field optional bool kerberos_5p_read_only = 10;
+ * @return bool
+ */
+ public function getKerberos5PReadOnly()
+ {
+ return isset($this->kerberos_5p_read_only) ? $this->kerberos_5p_read_only : false;
+ }
+
+ public function hasKerberos5PReadOnly()
+ {
+ return isset($this->kerberos_5p_read_only);
+ }
+
+ public function clearKerberos5PReadOnly()
+ {
+ unset($this->kerberos_5p_read_only);
+ }
+
+ /**
+ * If enabled (true) the rule defines a read only access for clients matching
+ * the 'allowedClients' specification. It enables nfs clients to mount using
+ * 'privacy' kerberos security mode.
+ *
+ * Generated from protobuf field optional bool kerberos_5p_read_only = 10;
+ * @param bool $var
+ * @return $this
+ */
+ public function setKerberos5PReadOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->kerberos_5p_read_only = $var;
+
+ return $this;
+ }
+
+ /**
+ * If enabled (true) the rule defines read and write access for clients
+ * matching the 'allowedClients' specification. It enables nfs clients to
+ * mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly'
+ * value be ignored if this is enabled.
+ *
+ * Generated from protobuf field optional bool kerberos_5p_read_write = 11;
+ * @return bool
+ */
+ public function getKerberos5PReadWrite()
+ {
+ return isset($this->kerberos_5p_read_write) ? $this->kerberos_5p_read_write : false;
+ }
+
+ public function hasKerberos5PReadWrite()
+ {
+ return isset($this->kerberos_5p_read_write);
+ }
+
+ public function clearKerberos5PReadWrite()
+ {
+ unset($this->kerberos_5p_read_write);
+ }
+
+ /**
+ * If enabled (true) the rule defines read and write access for clients
+ * matching the 'allowedClients' specification. It enables nfs clients to
+ * mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly'
+ * value be ignored if this is enabled.
+ *
+ * Generated from protobuf field optional bool kerberos_5p_read_write = 11;
+ * @param bool $var
+ * @return $this
+ */
+ public function setKerberos5PReadWrite($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->kerberos_5p_read_write = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/Snapshot.php b/NetApp/src/V1/Snapshot.php
new file mode 100644
index 00000000000..2e0f88d283f
--- /dev/null
+++ b/NetApp/src/V1/Snapshot.php
@@ -0,0 +1,293 @@
+google.cloud.netapp.v1.Snapshot
+ */
+class Snapshot extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The resource name of the snapshot.
+ * Format:
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. The snapshot state.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Snapshot.State state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. State details of the storage pool
+ *
+ * Generated from protobuf field string state_details = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state_details = '';
+ /**
+ * A description of the snapshot with 2048 characters or less.
+ * Requests with longer descriptions will be rejected.
+ *
+ * Generated from protobuf field string description = 4;
+ */
+ protected $description = '';
+ /**
+ * Output only. Current storage usage for the snapshot in bytes.
+ *
+ * Generated from protobuf field double used_bytes = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $used_bytes = 0.0;
+ /**
+ * Output only. The time when the snapshot was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Resource labels to represent user provided metadata.
+ *
+ * Generated from protobuf field map labels = 7;
+ */
+ private $labels;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The resource name of the snapshot.
+ * Format:
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`.
+ * @type int $state
+ * Output only. The snapshot state.
+ * @type string $state_details
+ * Output only. State details of the storage pool
+ * @type string $description
+ * A description of the snapshot with 2048 characters or less.
+ * Requests with longer descriptions will be rejected.
+ * @type float $used_bytes
+ * Output only. Current storage usage for the snapshot in bytes.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the snapshot was created.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Resource labels to represent user provided metadata.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Snapshot::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The resource name of the snapshot.
+ * Format:
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The resource name of the snapshot.
+ * Format:
+ * `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The snapshot state.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Snapshot.State state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. The snapshot state.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Snapshot.State state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\Snapshot\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. State details of the storage pool
+ *
+ * Generated from protobuf field string state_details = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStateDetails()
+ {
+ return $this->state_details;
+ }
+
+ /**
+ * Output only. State details of the storage pool
+ *
+ * Generated from protobuf field string state_details = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStateDetails($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->state_details = $var;
+
+ return $this;
+ }
+
+ /**
+ * A description of the snapshot with 2048 characters or less.
+ * Requests with longer descriptions will be rejected.
+ *
+ * Generated from protobuf field string description = 4;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * A description of the snapshot with 2048 characters or less.
+ * Requests with longer descriptions will be rejected.
+ *
+ * Generated from protobuf field string description = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Current storage usage for the snapshot in bytes.
+ *
+ * Generated from protobuf field double used_bytes = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return float
+ */
+ public function getUsedBytes()
+ {
+ return $this->used_bytes;
+ }
+
+ /**
+ * Output only. Current storage usage for the snapshot in bytes.
+ *
+ * Generated from protobuf field double used_bytes = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param float $var
+ * @return $this
+ */
+ public function setUsedBytes($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->used_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the snapshot was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time when the snapshot was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Resource labels to represent user provided metadata.
+ *
+ * Generated from protobuf field map labels = 7;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Resource labels to represent user provided metadata.
+ *
+ * Generated from protobuf field map labels = 7;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/Snapshot/State.php b/NetApp/src/V1/Snapshot/State.php
new file mode 100644
index 00000000000..2a50f81e7e0
--- /dev/null
+++ b/NetApp/src/V1/Snapshot/State.php
@@ -0,0 +1,90 @@
+google.cloud.netapp.v1.Snapshot.State
+ */
+class State
+{
+ /**
+ * Unspecified Snapshot State
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * Snapshot State is Ready
+ *
+ * Generated from protobuf enum READY = 1;
+ */
+ const READY = 1;
+ /**
+ * Snapshot State is Creating
+ *
+ * Generated from protobuf enum CREATING = 2;
+ */
+ const CREATING = 2;
+ /**
+ * Snapshot State is Deleting
+ *
+ * Generated from protobuf enum DELETING = 3;
+ */
+ const DELETING = 3;
+ /**
+ * Snapshot State is Updating
+ *
+ * Generated from protobuf enum UPDATING = 4;
+ */
+ const UPDATING = 4;
+ /**
+ * Snapshot State is Disabled
+ *
+ * Generated from protobuf enum DISABLED = 5;
+ */
+ const DISABLED = 5;
+ /**
+ * Snapshot State is Error
+ *
+ * Generated from protobuf enum ERROR = 6;
+ */
+ const ERROR = 6;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::READY => 'READY',
+ self::CREATING => 'CREATING',
+ self::DELETING => 'DELETING',
+ self::UPDATING => 'UPDATING',
+ self::DISABLED => 'DISABLED',
+ self::ERROR => 'ERROR',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+
diff --git a/NetApp/src/V1/SnapshotPolicy.php b/NetApp/src/V1/SnapshotPolicy.php
new file mode 100644
index 00000000000..bb19264c49e
--- /dev/null
+++ b/NetApp/src/V1/SnapshotPolicy.php
@@ -0,0 +1,257 @@
+google.cloud.netapp.v1.SnapshotPolicy
+ */
+class SnapshotPolicy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * If enabled, make snapshots automatically according to the schedules.
+ * Default is false.
+ *
+ * Generated from protobuf field optional bool enabled = 1;
+ */
+ protected $enabled = null;
+ /**
+ * Hourly schedule policy.
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.HourlySchedule hourly_schedule = 2;
+ */
+ protected $hourly_schedule = null;
+ /**
+ * Daily schedule policy.
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.DailySchedule daily_schedule = 3;
+ */
+ protected $daily_schedule = null;
+ /**
+ * Weekly schedule policy.
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.WeeklySchedule weekly_schedule = 4;
+ */
+ protected $weekly_schedule = null;
+ /**
+ * Monthly schedule policy.
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.MonthlySchedule monthly_schedule = 5;
+ */
+ protected $monthly_schedule = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * If enabled, make snapshots automatically according to the schedules.
+ * Default is false.
+ * @type \Google\Cloud\NetApp\V1\HourlySchedule $hourly_schedule
+ * Hourly schedule policy.
+ * @type \Google\Cloud\NetApp\V1\DailySchedule $daily_schedule
+ * Daily schedule policy.
+ * @type \Google\Cloud\NetApp\V1\WeeklySchedule $weekly_schedule
+ * Weekly schedule policy.
+ * @type \Google\Cloud\NetApp\V1\MonthlySchedule $monthly_schedule
+ * Monthly schedule policy.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * If enabled, make snapshots automatically according to the schedules.
+ * Default is false.
+ *
+ * Generated from protobuf field optional bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return isset($this->enabled) ? $this->enabled : false;
+ }
+
+ public function hasEnabled()
+ {
+ return isset($this->enabled);
+ }
+
+ public function clearEnabled()
+ {
+ unset($this->enabled);
+ }
+
+ /**
+ * If enabled, make snapshots automatically according to the schedules.
+ * Default is false.
+ *
+ * Generated from protobuf field optional bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Hourly schedule policy.
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.HourlySchedule hourly_schedule = 2;
+ * @return \Google\Cloud\NetApp\V1\HourlySchedule|null
+ */
+ public function getHourlySchedule()
+ {
+ return $this->hourly_schedule;
+ }
+
+ public function hasHourlySchedule()
+ {
+ return isset($this->hourly_schedule);
+ }
+
+ public function clearHourlySchedule()
+ {
+ unset($this->hourly_schedule);
+ }
+
+ /**
+ * Hourly schedule policy.
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.HourlySchedule hourly_schedule = 2;
+ * @param \Google\Cloud\NetApp\V1\HourlySchedule $var
+ * @return $this
+ */
+ public function setHourlySchedule($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\HourlySchedule::class);
+ $this->hourly_schedule = $var;
+
+ return $this;
+ }
+
+ /**
+ * Daily schedule policy.
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.DailySchedule daily_schedule = 3;
+ * @return \Google\Cloud\NetApp\V1\DailySchedule|null
+ */
+ public function getDailySchedule()
+ {
+ return $this->daily_schedule;
+ }
+
+ public function hasDailySchedule()
+ {
+ return isset($this->daily_schedule);
+ }
+
+ public function clearDailySchedule()
+ {
+ unset($this->daily_schedule);
+ }
+
+ /**
+ * Daily schedule policy.
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.DailySchedule daily_schedule = 3;
+ * @param \Google\Cloud\NetApp\V1\DailySchedule $var
+ * @return $this
+ */
+ public function setDailySchedule($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\DailySchedule::class);
+ $this->daily_schedule = $var;
+
+ return $this;
+ }
+
+ /**
+ * Weekly schedule policy.
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.WeeklySchedule weekly_schedule = 4;
+ * @return \Google\Cloud\NetApp\V1\WeeklySchedule|null
+ */
+ public function getWeeklySchedule()
+ {
+ return $this->weekly_schedule;
+ }
+
+ public function hasWeeklySchedule()
+ {
+ return isset($this->weekly_schedule);
+ }
+
+ public function clearWeeklySchedule()
+ {
+ unset($this->weekly_schedule);
+ }
+
+ /**
+ * Weekly schedule policy.
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.WeeklySchedule weekly_schedule = 4;
+ * @param \Google\Cloud\NetApp\V1\WeeklySchedule $var
+ * @return $this
+ */
+ public function setWeeklySchedule($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\WeeklySchedule::class);
+ $this->weekly_schedule = $var;
+
+ return $this;
+ }
+
+ /**
+ * Monthly schedule policy.
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.MonthlySchedule monthly_schedule = 5;
+ * @return \Google\Cloud\NetApp\V1\MonthlySchedule|null
+ */
+ public function getMonthlySchedule()
+ {
+ return $this->monthly_schedule;
+ }
+
+ public function hasMonthlySchedule()
+ {
+ return isset($this->monthly_schedule);
+ }
+
+ public function clearMonthlySchedule()
+ {
+ unset($this->monthly_schedule);
+ }
+
+ /**
+ * Monthly schedule policy.
+ *
+ * Generated from protobuf field optional .google.cloud.netapp.v1.MonthlySchedule monthly_schedule = 5;
+ * @param \Google\Cloud\NetApp\V1\MonthlySchedule $var
+ * @return $this
+ */
+ public function setMonthlySchedule($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\MonthlySchedule::class);
+ $this->monthly_schedule = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/StopReplicationRequest.php b/NetApp/src/V1/StopReplicationRequest.php
new file mode 100644
index 00000000000..5b666e6fb64
--- /dev/null
+++ b/NetApp/src/V1/StopReplicationRequest.php
@@ -0,0 +1,125 @@
+google.cloud.netapp.v1.StopReplicationRequest
+ */
+class StopReplicationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the replication, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Indicates whether to stop replication forcefully while data transfer is in
+ * progress.
+ * Warning! if force is true, this will abort any current transfers
+ * and can lead to data loss due to partial transfer.
+ * If force is false, stop replication will fail while data transfer is in
+ * progress and you will need to retry later.
+ *
+ * Generated from protobuf field bool force = 2;
+ */
+ protected $force = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The resource name of the replication, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
+ * @type bool $force
+ * Indicates whether to stop replication forcefully while data transfer is in
+ * progress.
+ * Warning! if force is true, this will abort any current transfers
+ * and can lead to data loss due to partial transfer.
+ * If force is false, stop replication will fail while data transfer is in
+ * progress and you will need to retry later.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Replication::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the replication, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The resource name of the replication, in the format of
+ * projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Indicates whether to stop replication forcefully while data transfer is in
+ * progress.
+ * Warning! if force is true, this will abort any current transfers
+ * and can lead to data loss due to partial transfer.
+ * If force is false, stop replication will fail while data transfer is in
+ * progress and you will need to retry later.
+ *
+ * Generated from protobuf field bool force = 2;
+ * @return bool
+ */
+ public function getForce()
+ {
+ return $this->force;
+ }
+
+ /**
+ * Indicates whether to stop replication forcefully while data transfer is in
+ * progress.
+ * Warning! if force is true, this will abort any current transfers
+ * and can lead to data loss due to partial transfer.
+ * If force is false, stop replication will fail while data transfer is in
+ * progress and you will need to retry later.
+ *
+ * Generated from protobuf field bool force = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setForce($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->force = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/StoragePool.php b/NetApp/src/V1/StoragePool.php
new file mode 100644
index 00000000000..2d06cbac63a
--- /dev/null
+++ b/NetApp/src/V1/StoragePool.php
@@ -0,0 +1,641 @@
+google.cloud.netapp.v1.StoragePool
+ */
+class StoragePool extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Name of the storage pool
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Required. Service level of the storage pool
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ServiceLevel service_level = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service_level = 0;
+ /**
+ * Required. Capacity in GIB of the pool
+ *
+ * Generated from protobuf field int64 capacity_gib = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $capacity_gib = 0;
+ /**
+ * Output only. Allocated size of all volumes in GIB in the storage pool
+ *
+ * Generated from protobuf field int64 volume_capacity_gib = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $volume_capacity_gib = 0;
+ /**
+ * Output only. Volume count of the storage pool
+ *
+ * Generated from protobuf field int32 volume_count = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $volume_count = 0;
+ /**
+ * Output only. State of the storage pool
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.StoragePool.State state = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. State details of the storage pool
+ *
+ * Generated from protobuf field string state_details = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state_details = '';
+ /**
+ * Output only. Create time of the storage pool
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Description of the storage pool
+ *
+ * Generated from protobuf field string description = 9;
+ */
+ protected $description = '';
+ /**
+ * Labels as key value pairs
+ *
+ * Generated from protobuf field map labels = 10;
+ */
+ private $labels;
+ /**
+ * Required. VPC Network name.
+ * Format: projects/{project}/global/networks/{network}
+ *
+ * Generated from protobuf field string network = 11 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $network = '';
+ /**
+ * Specifies the Active Directory to be used for creating a SMB volume.
+ *
+ * Generated from protobuf field string active_directory = 12 [(.google.api.resource_reference) = {
+ */
+ protected $active_directory = '';
+ /**
+ * Specifies the KMS config to be used for volume encryption.
+ *
+ * Generated from protobuf field string kms_config = 13 [(.google.api.resource_reference) = {
+ */
+ protected $kms_config = '';
+ /**
+ * Flag indicating if the pool is NFS LDAP enabled or not.
+ *
+ * Generated from protobuf field bool ldap_enabled = 14;
+ */
+ protected $ldap_enabled = false;
+ /**
+ * Name of the Private Service Access allocated range. If
+ * not provided, any available range will be chosen.
+ *
+ * Generated from protobuf field string psa_range = 15;
+ */
+ protected $psa_range = '';
+ /**
+ * Output only. Specifies the current pool encryption key source.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.EncryptionType encryption_type = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $encryption_type = 0;
+ /**
+ * Optional. Allows SO pool to access AD or DNS server from other regions.
+ *
+ * Generated from protobuf field optional bool global_access_allowed = 17 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $global_access_allowed = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. Name of the storage pool
+ * @type int $service_level
+ * Required. Service level of the storage pool
+ * @type int|string $capacity_gib
+ * Required. Capacity in GIB of the pool
+ * @type int|string $volume_capacity_gib
+ * Output only. Allocated size of all volumes in GIB in the storage pool
+ * @type int $volume_count
+ * Output only. Volume count of the storage pool
+ * @type int $state
+ * Output only. State of the storage pool
+ * @type string $state_details
+ * Output only. State details of the storage pool
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Create time of the storage pool
+ * @type string $description
+ * Description of the storage pool
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Labels as key value pairs
+ * @type string $network
+ * Required. VPC Network name.
+ * Format: projects/{project}/global/networks/{network}
+ * @type string $active_directory
+ * Specifies the Active Directory to be used for creating a SMB volume.
+ * @type string $kms_config
+ * Specifies the KMS config to be used for volume encryption.
+ * @type bool $ldap_enabled
+ * Flag indicating if the pool is NFS LDAP enabled or not.
+ * @type string $psa_range
+ * Name of the Private Service Access allocated range. If
+ * not provided, any available range will be chosen.
+ * @type int $encryption_type
+ * Output only. Specifies the current pool encryption key source.
+ * @type bool $global_access_allowed
+ * Optional. Allows SO pool to access AD or DNS server from other regions.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\StoragePool::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Name of the storage pool
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. Name of the storage pool
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Service level of the storage pool
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ServiceLevel service_level = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getServiceLevel()
+ {
+ return $this->service_level;
+ }
+
+ /**
+ * Required. Service level of the storage pool
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ServiceLevel service_level = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setServiceLevel($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\ServiceLevel::class);
+ $this->service_level = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Capacity in GIB of the pool
+ *
+ * Generated from protobuf field int64 capacity_gib = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return int|string
+ */
+ public function getCapacityGib()
+ {
+ return $this->capacity_gib;
+ }
+
+ /**
+ * Required. Capacity in GIB of the pool
+ *
+ * Generated from protobuf field int64 capacity_gib = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setCapacityGib($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->capacity_gib = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Allocated size of all volumes in GIB in the storage pool
+ *
+ * Generated from protobuf field int64 volume_capacity_gib = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|string
+ */
+ public function getVolumeCapacityGib()
+ {
+ return $this->volume_capacity_gib;
+ }
+
+ /**
+ * Output only. Allocated size of all volumes in GIB in the storage pool
+ *
+ * Generated from protobuf field int64 volume_capacity_gib = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setVolumeCapacityGib($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->volume_capacity_gib = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Volume count of the storage pool
+ *
+ * Generated from protobuf field int32 volume_count = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getVolumeCount()
+ {
+ return $this->volume_count;
+ }
+
+ /**
+ * Output only. Volume count of the storage pool
+ *
+ * Generated from protobuf field int32 volume_count = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setVolumeCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->volume_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. State of the storage pool
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.StoragePool.State state = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. State of the storage pool
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.StoragePool.State state = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\StoragePool\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. State details of the storage pool
+ *
+ * Generated from protobuf field string state_details = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStateDetails()
+ {
+ return $this->state_details;
+ }
+
+ /**
+ * Output only. State details of the storage pool
+ *
+ * Generated from protobuf field string state_details = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStateDetails($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->state_details = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Create time of the storage pool
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Create time of the storage pool
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of the storage pool
+ *
+ * Generated from protobuf field string description = 9;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description of the storage pool
+ *
+ * Generated from protobuf field string description = 9;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Labels as key value pairs
+ *
+ * Generated from protobuf field map labels = 10;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Labels as key value pairs
+ *
+ * Generated from protobuf field map labels = 10;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Required. VPC Network name.
+ * Format: projects/{project}/global/networks/{network}
+ *
+ * Generated from protobuf field string network = 11 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getNetwork()
+ {
+ return $this->network;
+ }
+
+ /**
+ * Required. VPC Network name.
+ * Format: projects/{project}/global/networks/{network}
+ *
+ * Generated from protobuf field string network = 11 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setNetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->network = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the Active Directory to be used for creating a SMB volume.
+ *
+ * Generated from protobuf field string active_directory = 12 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getActiveDirectory()
+ {
+ return $this->active_directory;
+ }
+
+ /**
+ * Specifies the Active Directory to be used for creating a SMB volume.
+ *
+ * Generated from protobuf field string active_directory = 12 [(.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setActiveDirectory($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->active_directory = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the KMS config to be used for volume encryption.
+ *
+ * Generated from protobuf field string kms_config = 13 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getKmsConfig()
+ {
+ return $this->kms_config;
+ }
+
+ /**
+ * Specifies the KMS config to be used for volume encryption.
+ *
+ * Generated from protobuf field string kms_config = 13 [(.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setKmsConfig($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->kms_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Flag indicating if the pool is NFS LDAP enabled or not.
+ *
+ * Generated from protobuf field bool ldap_enabled = 14;
+ * @return bool
+ */
+ public function getLdapEnabled()
+ {
+ return $this->ldap_enabled;
+ }
+
+ /**
+ * Flag indicating if the pool is NFS LDAP enabled or not.
+ *
+ * Generated from protobuf field bool ldap_enabled = 14;
+ * @param bool $var
+ * @return $this
+ */
+ public function setLdapEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->ldap_enabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Name of the Private Service Access allocated range. If
+ * not provided, any available range will be chosen.
+ *
+ * Generated from protobuf field string psa_range = 15;
+ * @return string
+ */
+ public function getPsaRange()
+ {
+ return $this->psa_range;
+ }
+
+ /**
+ * Name of the Private Service Access allocated range. If
+ * not provided, any available range will be chosen.
+ *
+ * Generated from protobuf field string psa_range = 15;
+ * @param string $var
+ * @return $this
+ */
+ public function setPsaRange($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->psa_range = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Specifies the current pool encryption key source.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.EncryptionType encryption_type = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getEncryptionType()
+ {
+ return $this->encryption_type;
+ }
+
+ /**
+ * Output only. Specifies the current pool encryption key source.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.EncryptionType encryption_type = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setEncryptionType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\EncryptionType::class);
+ $this->encryption_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Allows SO pool to access AD or DNS server from other regions.
+ *
+ * Generated from protobuf field optional bool global_access_allowed = 17 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getGlobalAccessAllowed()
+ {
+ return isset($this->global_access_allowed) ? $this->global_access_allowed : false;
+ }
+
+ public function hasGlobalAccessAllowed()
+ {
+ return isset($this->global_access_allowed);
+ }
+
+ public function clearGlobalAccessAllowed()
+ {
+ unset($this->global_access_allowed);
+ }
+
+ /**
+ * Optional. Allows SO pool to access AD or DNS server from other regions.
+ *
+ * Generated from protobuf field optional bool global_access_allowed = 17 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setGlobalAccessAllowed($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->global_access_allowed = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/StoragePool/State.php b/NetApp/src/V1/StoragePool/State.php
new file mode 100644
index 00000000000..76540f782df
--- /dev/null
+++ b/NetApp/src/V1/StoragePool/State.php
@@ -0,0 +1,97 @@
+google.cloud.netapp.v1.StoragePool.State
+ */
+class State
+{
+ /**
+ * Unspecified Storage Pool State
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * Storage Pool State is Ready
+ *
+ * Generated from protobuf enum READY = 1;
+ */
+ const READY = 1;
+ /**
+ * Storage Pool State is Creating
+ *
+ * Generated from protobuf enum CREATING = 2;
+ */
+ const CREATING = 2;
+ /**
+ * Storage Pool State is Deleting
+ *
+ * Generated from protobuf enum DELETING = 3;
+ */
+ const DELETING = 3;
+ /**
+ * Storage Pool State is Updating
+ *
+ * Generated from protobuf enum UPDATING = 4;
+ */
+ const UPDATING = 4;
+ /**
+ * Storage Pool State is Restoring
+ *
+ * Generated from protobuf enum RESTORING = 5;
+ */
+ const RESTORING = 5;
+ /**
+ * Storage Pool State is Disabled
+ *
+ * Generated from protobuf enum DISABLED = 6;
+ */
+ const DISABLED = 6;
+ /**
+ * Storage Pool State is Error
+ *
+ * Generated from protobuf enum ERROR = 7;
+ */
+ const ERROR = 7;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::READY => 'READY',
+ self::CREATING => 'CREATING',
+ self::DELETING => 'DELETING',
+ self::UPDATING => 'UPDATING',
+ self::RESTORING => 'RESTORING',
+ self::DISABLED => 'DISABLED',
+ self::ERROR => 'ERROR',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+
diff --git a/NetApp/src/V1/TransferStats.php b/NetApp/src/V1/TransferStats.php
new file mode 100644
index 00000000000..be2e27ec519
--- /dev/null
+++ b/NetApp/src/V1/TransferStats.php
@@ -0,0 +1,389 @@
+google.cloud.netapp.v1.TransferStats
+ */
+class TransferStats extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * bytes trasferred so far in current transfer.
+ *
+ * Generated from protobuf field optional int64 transfer_bytes = 1;
+ */
+ protected $transfer_bytes = null;
+ /**
+ * Total time taken during transfer.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration total_transfer_duration = 2;
+ */
+ protected $total_transfer_duration = null;
+ /**
+ * Last transfer size in bytes.
+ *
+ * Generated from protobuf field optional int64 last_transfer_bytes = 3;
+ */
+ protected $last_transfer_bytes = null;
+ /**
+ * Time taken during last transfer.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration last_transfer_duration = 4;
+ */
+ protected $last_transfer_duration = null;
+ /**
+ * Lag duration indicates the duration by which Destination region volume
+ * content lags behind the primary region volume content.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration lag_duration = 5;
+ */
+ protected $lag_duration = null;
+ /**
+ * Time when progress was updated last.
+ *
+ * Generated from protobuf field optional .google.protobuf.Timestamp update_time = 6;
+ */
+ protected $update_time = null;
+ /**
+ * Time when last transfer completed.
+ *
+ * Generated from protobuf field optional .google.protobuf.Timestamp last_transfer_end_time = 7;
+ */
+ protected $last_transfer_end_time = null;
+ /**
+ * A message describing the cause of the last transfer failure.
+ *
+ * Generated from protobuf field optional string last_transfer_error = 8;
+ */
+ protected $last_transfer_error = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $transfer_bytes
+ * bytes trasferred so far in current transfer.
+ * @type \Google\Protobuf\Duration $total_transfer_duration
+ * Total time taken during transfer.
+ * @type int|string $last_transfer_bytes
+ * Last transfer size in bytes.
+ * @type \Google\Protobuf\Duration $last_transfer_duration
+ * Time taken during last transfer.
+ * @type \Google\Protobuf\Duration $lag_duration
+ * Lag duration indicates the duration by which Destination region volume
+ * content lags behind the primary region volume content.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Time when progress was updated last.
+ * @type \Google\Protobuf\Timestamp $last_transfer_end_time
+ * Time when last transfer completed.
+ * @type string $last_transfer_error
+ * A message describing the cause of the last transfer failure.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Replication::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * bytes trasferred so far in current transfer.
+ *
+ * Generated from protobuf field optional int64 transfer_bytes = 1;
+ * @return int|string
+ */
+ public function getTransferBytes()
+ {
+ return isset($this->transfer_bytes) ? $this->transfer_bytes : 0;
+ }
+
+ public function hasTransferBytes()
+ {
+ return isset($this->transfer_bytes);
+ }
+
+ public function clearTransferBytes()
+ {
+ unset($this->transfer_bytes);
+ }
+
+ /**
+ * bytes trasferred so far in current transfer.
+ *
+ * Generated from protobuf field optional int64 transfer_bytes = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setTransferBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->transfer_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Total time taken during transfer.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration total_transfer_duration = 2;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getTotalTransferDuration()
+ {
+ return $this->total_transfer_duration;
+ }
+
+ public function hasTotalTransferDuration()
+ {
+ return isset($this->total_transfer_duration);
+ }
+
+ public function clearTotalTransferDuration()
+ {
+ unset($this->total_transfer_duration);
+ }
+
+ /**
+ * Total time taken during transfer.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration total_transfer_duration = 2;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setTotalTransferDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->total_transfer_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Last transfer size in bytes.
+ *
+ * Generated from protobuf field optional int64 last_transfer_bytes = 3;
+ * @return int|string
+ */
+ public function getLastTransferBytes()
+ {
+ return isset($this->last_transfer_bytes) ? $this->last_transfer_bytes : 0;
+ }
+
+ public function hasLastTransferBytes()
+ {
+ return isset($this->last_transfer_bytes);
+ }
+
+ public function clearLastTransferBytes()
+ {
+ unset($this->last_transfer_bytes);
+ }
+
+ /**
+ * Last transfer size in bytes.
+ *
+ * Generated from protobuf field optional int64 last_transfer_bytes = 3;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setLastTransferBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->last_transfer_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Time taken during last transfer.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration last_transfer_duration = 4;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getLastTransferDuration()
+ {
+ return $this->last_transfer_duration;
+ }
+
+ public function hasLastTransferDuration()
+ {
+ return isset($this->last_transfer_duration);
+ }
+
+ public function clearLastTransferDuration()
+ {
+ unset($this->last_transfer_duration);
+ }
+
+ /**
+ * Time taken during last transfer.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration last_transfer_duration = 4;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setLastTransferDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->last_transfer_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Lag duration indicates the duration by which Destination region volume
+ * content lags behind the primary region volume content.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration lag_duration = 5;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getLagDuration()
+ {
+ return $this->lag_duration;
+ }
+
+ public function hasLagDuration()
+ {
+ return isset($this->lag_duration);
+ }
+
+ public function clearLagDuration()
+ {
+ unset($this->lag_duration);
+ }
+
+ /**
+ * Lag duration indicates the duration by which Destination region volume
+ * content lags behind the primary region volume content.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration lag_duration = 5;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setLagDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->lag_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * Time when progress was updated last.
+ *
+ * Generated from protobuf field optional .google.protobuf.Timestamp update_time = 6;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Time when progress was updated last.
+ *
+ * Generated from protobuf field optional .google.protobuf.Timestamp update_time = 6;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Time when last transfer completed.
+ *
+ * Generated from protobuf field optional .google.protobuf.Timestamp last_transfer_end_time = 7;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getLastTransferEndTime()
+ {
+ return $this->last_transfer_end_time;
+ }
+
+ public function hasLastTransferEndTime()
+ {
+ return isset($this->last_transfer_end_time);
+ }
+
+ public function clearLastTransferEndTime()
+ {
+ unset($this->last_transfer_end_time);
+ }
+
+ /**
+ * Time when last transfer completed.
+ *
+ * Generated from protobuf field optional .google.protobuf.Timestamp last_transfer_end_time = 7;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setLastTransferEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->last_transfer_end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * A message describing the cause of the last transfer failure.
+ *
+ * Generated from protobuf field optional string last_transfer_error = 8;
+ * @return string
+ */
+ public function getLastTransferError()
+ {
+ return isset($this->last_transfer_error) ? $this->last_transfer_error : '';
+ }
+
+ public function hasLastTransferError()
+ {
+ return isset($this->last_transfer_error);
+ }
+
+ public function clearLastTransferError()
+ {
+ unset($this->last_transfer_error);
+ }
+
+ /**
+ * A message describing the cause of the last transfer failure.
+ *
+ * Generated from protobuf field optional string last_transfer_error = 8;
+ * @param string $var
+ * @return $this
+ */
+ public function setLastTransferError($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->last_transfer_error = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/UpdateActiveDirectoryRequest.php b/NetApp/src/V1/UpdateActiveDirectoryRequest.php
new file mode 100644
index 00000000000..aff58d48c9a
--- /dev/null
+++ b/NetApp/src/V1/UpdateActiveDirectoryRequest.php
@@ -0,0 +1,156 @@
+google.cloud.netapp.v1.UpdateActiveDirectoryRequest
+ */
+class UpdateActiveDirectoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Active Directory resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The volume being updated
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ActiveDirectory active_directory = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $active_directory = null;
+
+ /**
+ * @param \Google\Cloud\NetApp\V1\ActiveDirectory $activeDirectory Required. The volume being updated
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * Active Directory resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * @return \Google\Cloud\NetApp\V1\UpdateActiveDirectoryRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\NetApp\V1\ActiveDirectory $activeDirectory, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setActiveDirectory($activeDirectory)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Active Directory resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ * @type \Google\Cloud\NetApp\V1\ActiveDirectory $active_directory
+ * Required. The volume being updated
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\ActiveDirectory::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Active Directory resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Active Directory resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The volume being updated
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ActiveDirectory active_directory = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\NetApp\V1\ActiveDirectory|null
+ */
+ public function getActiveDirectory()
+ {
+ return $this->active_directory;
+ }
+
+ public function hasActiveDirectory()
+ {
+ return isset($this->active_directory);
+ }
+
+ public function clearActiveDirectory()
+ {
+ unset($this->active_directory);
+ }
+
+ /**
+ * Required. The volume being updated
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ActiveDirectory active_directory = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\NetApp\V1\ActiveDirectory $var
+ * @return $this
+ */
+ public function setActiveDirectory($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\ActiveDirectory::class);
+ $this->active_directory = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/UpdateKmsConfigRequest.php b/NetApp/src/V1/UpdateKmsConfigRequest.php
new file mode 100644
index 00000000000..e7d21cc9104
--- /dev/null
+++ b/NetApp/src/V1/UpdateKmsConfigRequest.php
@@ -0,0 +1,156 @@
+google.cloud.netapp.v1.UpdateKmsConfigRequest
+ */
+class UpdateKmsConfigRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * KmsConfig resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The KmsConfig being updated
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.KmsConfig kms_config = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $kms_config = null;
+
+ /**
+ * @param \Google\Cloud\NetApp\V1\KmsConfig $kmsConfig Required. The KmsConfig being updated
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * KmsConfig resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * @return \Google\Cloud\NetApp\V1\UpdateKmsConfigRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\NetApp\V1\KmsConfig $kmsConfig, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setKmsConfig($kmsConfig)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * KmsConfig resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ * @type \Google\Cloud\NetApp\V1\KmsConfig $kms_config
+ * Required. The KmsConfig being updated
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Kms::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * KmsConfig resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * KmsConfig resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The KmsConfig being updated
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.KmsConfig kms_config = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\NetApp\V1\KmsConfig|null
+ */
+ public function getKmsConfig()
+ {
+ return $this->kms_config;
+ }
+
+ public function hasKmsConfig()
+ {
+ return isset($this->kms_config);
+ }
+
+ public function clearKmsConfig()
+ {
+ unset($this->kms_config);
+ }
+
+ /**
+ * Required. The KmsConfig being updated
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.KmsConfig kms_config = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\NetApp\V1\KmsConfig $var
+ * @return $this
+ */
+ public function setKmsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\KmsConfig::class);
+ $this->kms_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/UpdateReplicationRequest.php b/NetApp/src/V1/UpdateReplicationRequest.php
new file mode 100644
index 00000000000..74d52ea18a2
--- /dev/null
+++ b/NetApp/src/V1/UpdateReplicationRequest.php
@@ -0,0 +1,141 @@
+google.cloud.netapp.v1.UpdateReplicationRequest
+ */
+class UpdateReplicationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Mask of fields to update. At least one path must be supplied in
+ * this field.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. A replication resource
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication replication = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $replication = null;
+
+ /**
+ * @param \Google\Cloud\NetApp\V1\Replication $replication Required. A replication resource
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Mask of fields to update. At least one path must be supplied in
+ * this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\UpdateReplicationRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\NetApp\V1\Replication $replication, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setReplication($replication)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Mask of fields to update. At least one path must be supplied in
+ * this field.
+ * @type \Google\Cloud\NetApp\V1\Replication $replication
+ * Required. A replication resource
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Replication::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Mask of fields to update. At least one path must be supplied in
+ * this field.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Mask of fields to update. At least one path must be supplied in
+ * this field.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A replication resource
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication replication = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\NetApp\V1\Replication|null
+ */
+ public function getReplication()
+ {
+ return $this->replication;
+ }
+
+ public function hasReplication()
+ {
+ return isset($this->replication);
+ }
+
+ public function clearReplication()
+ {
+ unset($this->replication);
+ }
+
+ /**
+ * Required. A replication resource
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Replication replication = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\NetApp\V1\Replication $var
+ * @return $this
+ */
+ public function setReplication($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\Replication::class);
+ $this->replication = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/UpdateSnapshotRequest.php b/NetApp/src/V1/UpdateSnapshotRequest.php
new file mode 100644
index 00000000000..245912940e9
--- /dev/null
+++ b/NetApp/src/V1/UpdateSnapshotRequest.php
@@ -0,0 +1,141 @@
+google.cloud.netapp.v1.UpdateSnapshotRequest
+ */
+class UpdateSnapshotRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Mask of fields to update. At least one path must be supplied in
+ * this field.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. A snapshot resource
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Snapshot snapshot = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $snapshot = null;
+
+ /**
+ * @param \Google\Cloud\NetApp\V1\Snapshot $snapshot Required. A snapshot resource
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Mask of fields to update. At least one path must be supplied in
+ * this field.
+ *
+ * @return \Google\Cloud\NetApp\V1\UpdateSnapshotRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\NetApp\V1\Snapshot $snapshot, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setSnapshot($snapshot)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Mask of fields to update. At least one path must be supplied in
+ * this field.
+ * @type \Google\Cloud\NetApp\V1\Snapshot $snapshot
+ * Required. A snapshot resource
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Snapshot::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Mask of fields to update. At least one path must be supplied in
+ * this field.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Mask of fields to update. At least one path must be supplied in
+ * this field.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A snapshot resource
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Snapshot snapshot = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\NetApp\V1\Snapshot|null
+ */
+ public function getSnapshot()
+ {
+ return $this->snapshot;
+ }
+
+ public function hasSnapshot()
+ {
+ return isset($this->snapshot);
+ }
+
+ public function clearSnapshot()
+ {
+ unset($this->snapshot);
+ }
+
+ /**
+ * Required. A snapshot resource
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Snapshot snapshot = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\NetApp\V1\Snapshot $var
+ * @return $this
+ */
+ public function setSnapshot($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\Snapshot::class);
+ $this->snapshot = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/UpdateStoragePoolRequest.php b/NetApp/src/V1/UpdateStoragePoolRequest.php
new file mode 100644
index 00000000000..d6194402ffe
--- /dev/null
+++ b/NetApp/src/V1/UpdateStoragePoolRequest.php
@@ -0,0 +1,156 @@
+google.cloud.netapp.v1.UpdateStoragePoolRequest
+ */
+class UpdateStoragePoolRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * StoragePool resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The pool being updated
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.StoragePool storage_pool = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $storage_pool = null;
+
+ /**
+ * @param \Google\Cloud\NetApp\V1\StoragePool $storagePool Required. The pool being updated
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * StoragePool resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * @return \Google\Cloud\NetApp\V1\UpdateStoragePoolRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\NetApp\V1\StoragePool $storagePool, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setStoragePool($storagePool)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * StoragePool resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ * @type \Google\Cloud\NetApp\V1\StoragePool $storage_pool
+ * Required. The pool being updated
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\StoragePool::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * StoragePool resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * StoragePool resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The pool being updated
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.StoragePool storage_pool = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\NetApp\V1\StoragePool|null
+ */
+ public function getStoragePool()
+ {
+ return $this->storage_pool;
+ }
+
+ public function hasStoragePool()
+ {
+ return isset($this->storage_pool);
+ }
+
+ public function clearStoragePool()
+ {
+ unset($this->storage_pool);
+ }
+
+ /**
+ * Required. The pool being updated
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.StoragePool storage_pool = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\NetApp\V1\StoragePool $var
+ * @return $this
+ */
+ public function setStoragePool($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\StoragePool::class);
+ $this->storage_pool = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/UpdateVolumeRequest.php b/NetApp/src/V1/UpdateVolumeRequest.php
new file mode 100644
index 00000000000..9ff48041804
--- /dev/null
+++ b/NetApp/src/V1/UpdateVolumeRequest.php
@@ -0,0 +1,156 @@
+google.cloud.netapp.v1.UpdateVolumeRequest
+ */
+class UpdateVolumeRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Volume resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+ /**
+ * Required. The volume being updated
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Volume volume = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $volume = null;
+
+ /**
+ * @param \Google\Cloud\NetApp\V1\Volume $volume Required. The volume being updated
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Field mask is used to specify the fields to be overwritten in the
+ * Volume resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * @return \Google\Cloud\NetApp\V1\UpdateVolumeRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\NetApp\V1\Volume $volume, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setVolume($volume)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Volume resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ * @type \Google\Cloud\NetApp\V1\Volume $volume
+ * Required. The volume being updated
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Volume resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Field mask is used to specify the fields to be overwritten in the
+ * Volume resource by the update.
+ * The fields specified in the update_mask are relative to the resource, not
+ * the full request. A field will be overwritten if it is in the mask. If the
+ * user does not provide a mask then all fields will be overwritten.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The volume being updated
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Volume volume = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\NetApp\V1\Volume|null
+ */
+ public function getVolume()
+ {
+ return $this->volume;
+ }
+
+ public function hasVolume()
+ {
+ return isset($this->volume);
+ }
+
+ public function clearVolume()
+ {
+ unset($this->volume);
+ }
+
+ /**
+ * Required. The volume being updated
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Volume volume = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\NetApp\V1\Volume $var
+ * @return $this
+ */
+ public function setVolume($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\Volume::class);
+ $this->volume = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/VerifyKmsConfigRequest.php b/NetApp/src/V1/VerifyKmsConfigRequest.php
new file mode 100644
index 00000000000..cbdbf82d59b
--- /dev/null
+++ b/NetApp/src/V1/VerifyKmsConfigRequest.php
@@ -0,0 +1,67 @@
+google.cloud.netapp.v1.VerifyKmsConfigRequest
+ */
+class VerifyKmsConfigRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Name of the KMS Config to be verified.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Name of the KMS Config to be verified.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Kms::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Name of the KMS Config to be verified.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Name of the KMS Config to be verified.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/VerifyKmsConfigResponse.php b/NetApp/src/V1/VerifyKmsConfigResponse.php
new file mode 100644
index 00000000000..317111a1043
--- /dev/null
+++ b/NetApp/src/V1/VerifyKmsConfigResponse.php
@@ -0,0 +1,144 @@
+google.cloud.netapp.v1.VerifyKmsConfigResponse
+ */
+class VerifyKmsConfigResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. If the customer key configured correctly to the encrypt
+ * volume.
+ *
+ * Generated from protobuf field bool healthy = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $healthy = false;
+ /**
+ * Output only. Error message if config is not healthy.
+ *
+ * Generated from protobuf field string health_error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $health_error = '';
+ /**
+ * Output only. Instructions for the customers to provide the access to the
+ * encryption key.
+ *
+ * Generated from protobuf field string instructions = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $instructions = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $healthy
+ * Output only. If the customer key configured correctly to the encrypt
+ * volume.
+ * @type string $health_error
+ * Output only. Error message if config is not healthy.
+ * @type string $instructions
+ * Output only. Instructions for the customers to provide the access to the
+ * encryption key.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Kms::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. If the customer key configured correctly to the encrypt
+ * volume.
+ *
+ * Generated from protobuf field bool healthy = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getHealthy()
+ {
+ return $this->healthy;
+ }
+
+ /**
+ * Output only. If the customer key configured correctly to the encrypt
+ * volume.
+ *
+ * Generated from protobuf field bool healthy = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setHealthy($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->healthy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Error message if config is not healthy.
+ *
+ * Generated from protobuf field string health_error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getHealthError()
+ {
+ return $this->health_error;
+ }
+
+ /**
+ * Output only. Error message if config is not healthy.
+ *
+ * Generated from protobuf field string health_error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setHealthError($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->health_error = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Instructions for the customers to provide the access to the
+ * encryption key.
+ *
+ * Generated from protobuf field string instructions = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getInstructions()
+ {
+ return $this->instructions;
+ }
+
+ /**
+ * Output only. Instructions for the customers to provide the access to the
+ * encryption key.
+ *
+ * Generated from protobuf field string instructions = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setInstructions($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->instructions = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/Volume.php b/NetApp/src/V1/Volume.php
new file mode 100644
index 00000000000..3a6178c999f
--- /dev/null
+++ b/NetApp/src/V1/Volume.php
@@ -0,0 +1,1129 @@
+google.cloud.netapp.v1.Volume
+ */
+class Volume extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Name of the volume
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. State of the volume
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Volume.State state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state = 0;
+ /**
+ * Output only. State details of the volume
+ *
+ * Generated from protobuf field string state_details = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $state_details = '';
+ /**
+ * Output only. Create time of the volume
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Required. Share name of the volume
+ *
+ * Generated from protobuf field string share_name = 5 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $share_name = '';
+ /**
+ * Output only. Name of the Private Service Access allocated range. This is
+ * optional. If not provided, any available range will be chosen.
+ *
+ * Generated from protobuf field string psa_range = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $psa_range = '';
+ /**
+ * Required. StoragePool name of the volume
+ *
+ * Generated from protobuf field string storage_pool = 7 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $storage_pool = '';
+ /**
+ * Output only. VPC Network name.
+ * Format: projects/{project}/global/networks/{network}
+ *
+ * Generated from protobuf field string network = 8 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $network = '';
+ /**
+ * Output only. Service level of the volume
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ServiceLevel service_level = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $service_level = 0;
+ /**
+ * Required. Capacity in GIB of the volume
+ *
+ * Generated from protobuf field int64 capacity_gib = 10 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $capacity_gib = 0;
+ /**
+ * Optional. Export policy of the volume
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ExportPolicy export_policy = 11 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $export_policy = null;
+ /**
+ * Required. Protocols required for the volume
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.Protocols protocols = 12 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $protocols;
+ /**
+ * Optional. SMB share settings for the volume.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.SMBSettings smb_settings = 13 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $smb_settings;
+ /**
+ * Output only. Mount options of this volume
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.MountOption mount_options = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $mount_options;
+ /**
+ * Optional. Default unix style permission (e.g. 777) the mount point will be
+ * created with. Applicable for NFS protocol types only.
+ *
+ * Generated from protobuf field string unix_permissions = 15 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $unix_permissions = '';
+ /**
+ * Optional. Labels as key value pairs
+ *
+ * Generated from protobuf field map labels = 16 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $labels;
+ /**
+ * Optional. Description of the volume
+ *
+ * Generated from protobuf field string description = 17 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $description = '';
+ /**
+ * Optional. SnapshotPolicy for a volume.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.SnapshotPolicy snapshot_policy = 18 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $snapshot_policy = null;
+ /**
+ * Optional. Snap_reserve specifies percentage of volume storage reserved for
+ * snapshot storage. Default is 0 percent.
+ *
+ * Generated from protobuf field double snap_reserve = 19 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $snap_reserve = 0.0;
+ /**
+ * Optional. Snapshot_directory if enabled (true) the volume will contain a
+ * read-only .snapshot directory which provides access to each of the volume's
+ * snapshots.
+ *
+ * Generated from protobuf field bool snapshot_directory = 20 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $snapshot_directory = false;
+ /**
+ * Output only. Used capacity in GIB of the volume. This is computed
+ * periodically and it does not represent the realtime usage.
+ *
+ * Generated from protobuf field int64 used_gib = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $used_gib = 0;
+ /**
+ * Optional. Security Style of the Volume
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.SecurityStyle security_style = 22 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $security_style = 0;
+ /**
+ * Optional. Flag indicating if the volume is a kerberos volume or not, export
+ * policy rules control kerberos security modes (krb5, krb5i, krb5p).
+ *
+ * Generated from protobuf field bool kerberos_enabled = 23 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $kerberos_enabled = false;
+ /**
+ * Output only. Flag indicating if the volume is NFS LDAP enabled or not.
+ *
+ * Generated from protobuf field bool ldap_enabled = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $ldap_enabled = false;
+ /**
+ * Output only. Specifies the ActiveDirectory name of a SMB volume.
+ *
+ * Generated from protobuf field string active_directory = 25 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $active_directory = '';
+ /**
+ * Optional. Specifies the source of the volume to be created from.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.RestoreParameters restore_parameters = 26 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $restore_parameters = null;
+ /**
+ * Output only. Specifies the KMS config to be used for volume encryption.
+ *
+ * Generated from protobuf field string kms_config = 27 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ */
+ protected $kms_config = '';
+ /**
+ * Output only. Specified the current volume encryption key source.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.EncryptionType encryption_type = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $encryption_type = 0;
+ /**
+ * Output only. Indicates whether the volume is part of a replication
+ * relationship.
+ *
+ * Generated from protobuf field bool has_replication = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $has_replication = false;
+ /**
+ * Optional. List of actions that are restricted on this volume.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.RestrictedAction restricted_actions = 31 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $restricted_actions;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. Name of the volume
+ * @type int $state
+ * Output only. State of the volume
+ * @type string $state_details
+ * Output only. State details of the volume
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Create time of the volume
+ * @type string $share_name
+ * Required. Share name of the volume
+ * @type string $psa_range
+ * Output only. Name of the Private Service Access allocated range. This is
+ * optional. If not provided, any available range will be chosen.
+ * @type string $storage_pool
+ * Required. StoragePool name of the volume
+ * @type string $network
+ * Output only. VPC Network name.
+ * Format: projects/{project}/global/networks/{network}
+ * @type int $service_level
+ * Output only. Service level of the volume
+ * @type int|string $capacity_gib
+ * Required. Capacity in GIB of the volume
+ * @type \Google\Cloud\NetApp\V1\ExportPolicy $export_policy
+ * Optional. Export policy of the volume
+ * @type array|\Google\Protobuf\Internal\RepeatedField $protocols
+ * Required. Protocols required for the volume
+ * @type array|\Google\Protobuf\Internal\RepeatedField $smb_settings
+ * Optional. SMB share settings for the volume.
+ * @type array<\Google\Cloud\NetApp\V1\MountOption>|\Google\Protobuf\Internal\RepeatedField $mount_options
+ * Output only. Mount options of this volume
+ * @type string $unix_permissions
+ * Optional. Default unix style permission (e.g. 777) the mount point will be
+ * created with. Applicable for NFS protocol types only.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Optional. Labels as key value pairs
+ * @type string $description
+ * Optional. Description of the volume
+ * @type \Google\Cloud\NetApp\V1\SnapshotPolicy $snapshot_policy
+ * Optional. SnapshotPolicy for a volume.
+ * @type float $snap_reserve
+ * Optional. Snap_reserve specifies percentage of volume storage reserved for
+ * snapshot storage. Default is 0 percent.
+ * @type bool $snapshot_directory
+ * Optional. Snapshot_directory if enabled (true) the volume will contain a
+ * read-only .snapshot directory which provides access to each of the volume's
+ * snapshots.
+ * @type int|string $used_gib
+ * Output only. Used capacity in GIB of the volume. This is computed
+ * periodically and it does not represent the realtime usage.
+ * @type int $security_style
+ * Optional. Security Style of the Volume
+ * @type bool $kerberos_enabled
+ * Optional. Flag indicating if the volume is a kerberos volume or not, export
+ * policy rules control kerberos security modes (krb5, krb5i, krb5p).
+ * @type bool $ldap_enabled
+ * Output only. Flag indicating if the volume is NFS LDAP enabled or not.
+ * @type string $active_directory
+ * Output only. Specifies the ActiveDirectory name of a SMB volume.
+ * @type \Google\Cloud\NetApp\V1\RestoreParameters $restore_parameters
+ * Optional. Specifies the source of the volume to be created from.
+ * @type string $kms_config
+ * Output only. Specifies the KMS config to be used for volume encryption.
+ * @type int $encryption_type
+ * Output only. Specified the current volume encryption key source.
+ * @type bool $has_replication
+ * Output only. Indicates whether the volume is part of a replication
+ * relationship.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $restricted_actions
+ * Optional. List of actions that are restricted on this volume.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Name of the volume
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. Name of the volume
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. State of the volume
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Volume.State state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Output only. State of the volume
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.Volume.State state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\Volume\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. State details of the volume
+ *
+ * Generated from protobuf field string state_details = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStateDetails()
+ {
+ return $this->state_details;
+ }
+
+ /**
+ * Output only. State details of the volume
+ *
+ * Generated from protobuf field string state_details = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStateDetails($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->state_details = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Create time of the volume
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Create time of the volume
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Share name of the volume
+ *
+ * Generated from protobuf field string share_name = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getShareName()
+ {
+ return $this->share_name;
+ }
+
+ /**
+ * Required. Share name of the volume
+ *
+ * Generated from protobuf field string share_name = 5 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setShareName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->share_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Name of the Private Service Access allocated range. This is
+ * optional. If not provided, any available range will be chosen.
+ *
+ * Generated from protobuf field string psa_range = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getPsaRange()
+ {
+ return $this->psa_range;
+ }
+
+ /**
+ * Output only. Name of the Private Service Access allocated range. This is
+ * optional. If not provided, any available range will be chosen.
+ *
+ * Generated from protobuf field string psa_range = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setPsaRange($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->psa_range = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. StoragePool name of the volume
+ *
+ * Generated from protobuf field string storage_pool = 7 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getStoragePool()
+ {
+ return $this->storage_pool;
+ }
+
+ /**
+ * Required. StoragePool name of the volume
+ *
+ * Generated from protobuf field string storage_pool = 7 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setStoragePool($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->storage_pool = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. VPC Network name.
+ * Format: projects/{project}/global/networks/{network}
+ *
+ * Generated from protobuf field string network = 8 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getNetwork()
+ {
+ return $this->network;
+ }
+
+ /**
+ * Output only. VPC Network name.
+ * Format: projects/{project}/global/networks/{network}
+ *
+ * Generated from protobuf field string network = 8 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setNetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->network = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Service level of the volume
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ServiceLevel service_level = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getServiceLevel()
+ {
+ return $this->service_level;
+ }
+
+ /**
+ * Output only. Service level of the volume
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ServiceLevel service_level = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setServiceLevel($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\ServiceLevel::class);
+ $this->service_level = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Capacity in GIB of the volume
+ *
+ * Generated from protobuf field int64 capacity_gib = 10 [(.google.api.field_behavior) = REQUIRED];
+ * @return int|string
+ */
+ public function getCapacityGib()
+ {
+ return $this->capacity_gib;
+ }
+
+ /**
+ * Required. Capacity in GIB of the volume
+ *
+ * Generated from protobuf field int64 capacity_gib = 10 [(.google.api.field_behavior) = REQUIRED];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setCapacityGib($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->capacity_gib = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Export policy of the volume
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ExportPolicy export_policy = 11 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\NetApp\V1\ExportPolicy|null
+ */
+ public function getExportPolicy()
+ {
+ return $this->export_policy;
+ }
+
+ public function hasExportPolicy()
+ {
+ return isset($this->export_policy);
+ }
+
+ public function clearExportPolicy()
+ {
+ unset($this->export_policy);
+ }
+
+ /**
+ * Optional. Export policy of the volume
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.ExportPolicy export_policy = 11 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\NetApp\V1\ExportPolicy $var
+ * @return $this
+ */
+ public function setExportPolicy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\ExportPolicy::class);
+ $this->export_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Protocols required for the volume
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.Protocols protocols = 12 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getProtocols()
+ {
+ return $this->protocols;
+ }
+
+ /**
+ * Required. Protocols required for the volume
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.Protocols protocols = 12 [(.google.api.field_behavior) = REQUIRED];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setProtocols($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\NetApp\V1\Protocols::class);
+ $this->protocols = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. SMB share settings for the volume.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.SMBSettings smb_settings = 13 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSmbSettings()
+ {
+ return $this->smb_settings;
+ }
+
+ /**
+ * Optional. SMB share settings for the volume.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.SMBSettings smb_settings = 13 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSmbSettings($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\NetApp\V1\SMBSettings::class);
+ $this->smb_settings = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Mount options of this volume
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.MountOption mount_options = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMountOptions()
+ {
+ return $this->mount_options;
+ }
+
+ /**
+ * Output only. Mount options of this volume
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.MountOption mount_options = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\NetApp\V1\MountOption>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMountOptions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\NetApp\V1\MountOption::class);
+ $this->mount_options = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Default unix style permission (e.g. 777) the mount point will be
+ * created with. Applicable for NFS protocol types only.
+ *
+ * Generated from protobuf field string unix_permissions = 15 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getUnixPermissions()
+ {
+ return $this->unix_permissions;
+ }
+
+ /**
+ * Optional. Default unix style permission (e.g. 777) the mount point will be
+ * created with. Applicable for NFS protocol types only.
+ *
+ * Generated from protobuf field string unix_permissions = 15 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setUnixPermissions($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->unix_permissions = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Labels as key value pairs
+ *
+ * Generated from protobuf field map labels = 16 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Optional. Labels as key value pairs
+ *
+ * Generated from protobuf field map labels = 16 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Description of the volume
+ *
+ * Generated from protobuf field string description = 17 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Optional. Description of the volume
+ *
+ * Generated from protobuf field string description = 17 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. SnapshotPolicy for a volume.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.SnapshotPolicy snapshot_policy = 18 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\NetApp\V1\SnapshotPolicy|null
+ */
+ public function getSnapshotPolicy()
+ {
+ return $this->snapshot_policy;
+ }
+
+ public function hasSnapshotPolicy()
+ {
+ return isset($this->snapshot_policy);
+ }
+
+ public function clearSnapshotPolicy()
+ {
+ unset($this->snapshot_policy);
+ }
+
+ /**
+ * Optional. SnapshotPolicy for a volume.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.SnapshotPolicy snapshot_policy = 18 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\NetApp\V1\SnapshotPolicy $var
+ * @return $this
+ */
+ public function setSnapshotPolicy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\SnapshotPolicy::class);
+ $this->snapshot_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Snap_reserve specifies percentage of volume storage reserved for
+ * snapshot storage. Default is 0 percent.
+ *
+ * Generated from protobuf field double snap_reserve = 19 [(.google.api.field_behavior) = OPTIONAL];
+ * @return float
+ */
+ public function getSnapReserve()
+ {
+ return $this->snap_reserve;
+ }
+
+ /**
+ * Optional. Snap_reserve specifies percentage of volume storage reserved for
+ * snapshot storage. Default is 0 percent.
+ *
+ * Generated from protobuf field double snap_reserve = 19 [(.google.api.field_behavior) = OPTIONAL];
+ * @param float $var
+ * @return $this
+ */
+ public function setSnapReserve($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->snap_reserve = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Snapshot_directory if enabled (true) the volume will contain a
+ * read-only .snapshot directory which provides access to each of the volume's
+ * snapshots.
+ *
+ * Generated from protobuf field bool snapshot_directory = 20 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getSnapshotDirectory()
+ {
+ return $this->snapshot_directory;
+ }
+
+ /**
+ * Optional. Snapshot_directory if enabled (true) the volume will contain a
+ * read-only .snapshot directory which provides access to each of the volume's
+ * snapshots.
+ *
+ * Generated from protobuf field bool snapshot_directory = 20 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setSnapshotDirectory($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->snapshot_directory = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Used capacity in GIB of the volume. This is computed
+ * periodically and it does not represent the realtime usage.
+ *
+ * Generated from protobuf field int64 used_gib = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|string
+ */
+ public function getUsedGib()
+ {
+ return $this->used_gib;
+ }
+
+ /**
+ * Output only. Used capacity in GIB of the volume. This is computed
+ * periodically and it does not represent the realtime usage.
+ *
+ * Generated from protobuf field int64 used_gib = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setUsedGib($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->used_gib = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Security Style of the Volume
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.SecurityStyle security_style = 22 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getSecurityStyle()
+ {
+ return $this->security_style;
+ }
+
+ /**
+ * Optional. Security Style of the Volume
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.SecurityStyle security_style = 22 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setSecurityStyle($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\SecurityStyle::class);
+ $this->security_style = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Flag indicating if the volume is a kerberos volume or not, export
+ * policy rules control kerberos security modes (krb5, krb5i, krb5p).
+ *
+ * Generated from protobuf field bool kerberos_enabled = 23 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getKerberosEnabled()
+ {
+ return $this->kerberos_enabled;
+ }
+
+ /**
+ * Optional. Flag indicating if the volume is a kerberos volume or not, export
+ * policy rules control kerberos security modes (krb5, krb5i, krb5p).
+ *
+ * Generated from protobuf field bool kerberos_enabled = 23 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setKerberosEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->kerberos_enabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Flag indicating if the volume is NFS LDAP enabled or not.
+ *
+ * Generated from protobuf field bool ldap_enabled = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getLdapEnabled()
+ {
+ return $this->ldap_enabled;
+ }
+
+ /**
+ * Output only. Flag indicating if the volume is NFS LDAP enabled or not.
+ *
+ * Generated from protobuf field bool ldap_enabled = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setLdapEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->ldap_enabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Specifies the ActiveDirectory name of a SMB volume.
+ *
+ * Generated from protobuf field string active_directory = 25 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getActiveDirectory()
+ {
+ return $this->active_directory;
+ }
+
+ /**
+ * Output only. Specifies the ActiveDirectory name of a SMB volume.
+ *
+ * Generated from protobuf field string active_directory = 25 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setActiveDirectory($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->active_directory = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Specifies the source of the volume to be created from.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.RestoreParameters restore_parameters = 26 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\NetApp\V1\RestoreParameters|null
+ */
+ public function getRestoreParameters()
+ {
+ return $this->restore_parameters;
+ }
+
+ public function hasRestoreParameters()
+ {
+ return isset($this->restore_parameters);
+ }
+
+ public function clearRestoreParameters()
+ {
+ unset($this->restore_parameters);
+ }
+
+ /**
+ * Optional. Specifies the source of the volume to be created from.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.RestoreParameters restore_parameters = 26 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\NetApp\V1\RestoreParameters $var
+ * @return $this
+ */
+ public function setRestoreParameters($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\NetApp\V1\RestoreParameters::class);
+ $this->restore_parameters = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Specifies the KMS config to be used for volume encryption.
+ *
+ * Generated from protobuf field string kms_config = 27 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getKmsConfig()
+ {
+ return $this->kms_config;
+ }
+
+ /**
+ * Output only. Specifies the KMS config to be used for volume encryption.
+ *
+ * Generated from protobuf field string kms_config = 27 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setKmsConfig($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->kms_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Specified the current volume encryption key source.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.EncryptionType encryption_type = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getEncryptionType()
+ {
+ return $this->encryption_type;
+ }
+
+ /**
+ * Output only. Specified the current volume encryption key source.
+ *
+ * Generated from protobuf field .google.cloud.netapp.v1.EncryptionType encryption_type = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setEncryptionType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\NetApp\V1\EncryptionType::class);
+ $this->encryption_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Indicates whether the volume is part of a replication
+ * relationship.
+ *
+ * Generated from protobuf field bool has_replication = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getHasReplication()
+ {
+ return $this->has_replication;
+ }
+
+ /**
+ * Output only. Indicates whether the volume is part of a replication
+ * relationship.
+ *
+ * Generated from protobuf field bool has_replication = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setHasReplication($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->has_replication = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. List of actions that are restricted on this volume.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.RestrictedAction restricted_actions = 31 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRestrictedActions()
+ {
+ return $this->restricted_actions;
+ }
+
+ /**
+ * Optional. List of actions that are restricted on this volume.
+ *
+ * Generated from protobuf field repeated .google.cloud.netapp.v1.RestrictedAction restricted_actions = 31 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRestrictedActions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\NetApp\V1\RestrictedAction::class);
+ $this->restricted_actions = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/Volume/State.php b/NetApp/src/V1/Volume/State.php
new file mode 100644
index 00000000000..2ec54c8c1b0
--- /dev/null
+++ b/NetApp/src/V1/Volume/State.php
@@ -0,0 +1,97 @@
+google.cloud.netapp.v1.Volume.State
+ */
+class State
+{
+ /**
+ * Unspecified Volume State
+ *
+ * Generated from protobuf enum STATE_UNSPECIFIED = 0;
+ */
+ const STATE_UNSPECIFIED = 0;
+ /**
+ * Volume State is Ready
+ *
+ * Generated from protobuf enum READY = 1;
+ */
+ const READY = 1;
+ /**
+ * Volume State is Creating
+ *
+ * Generated from protobuf enum CREATING = 2;
+ */
+ const CREATING = 2;
+ /**
+ * Volume State is Deleting
+ *
+ * Generated from protobuf enum DELETING = 3;
+ */
+ const DELETING = 3;
+ /**
+ * Volume State is Updating
+ *
+ * Generated from protobuf enum UPDATING = 4;
+ */
+ const UPDATING = 4;
+ /**
+ * Volume State is Restoring
+ *
+ * Generated from protobuf enum RESTORING = 5;
+ */
+ const RESTORING = 5;
+ /**
+ * Volume State is Disabled
+ *
+ * Generated from protobuf enum DISABLED = 6;
+ */
+ const DISABLED = 6;
+ /**
+ * Volume State is Error
+ *
+ * Generated from protobuf enum ERROR = 7;
+ */
+ const ERROR = 7;
+
+ private static $valueToName = [
+ self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED',
+ self::READY => 'READY',
+ self::CREATING => 'CREATING',
+ self::DELETING => 'DELETING',
+ self::UPDATING => 'UPDATING',
+ self::RESTORING => 'RESTORING',
+ self::DISABLED => 'DISABLED',
+ self::ERROR => 'ERROR',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+
diff --git a/NetApp/src/V1/WeeklySchedule.php b/NetApp/src/V1/WeeklySchedule.php
new file mode 100644
index 00000000000..8b126b6825c
--- /dev/null
+++ b/NetApp/src/V1/WeeklySchedule.php
@@ -0,0 +1,218 @@
+google.cloud.netapp.v1.WeeklySchedule
+ */
+class WeeklySchedule extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The maximum number of Snapshots to keep for the hourly schedule
+ *
+ * Generated from protobuf field optional double snapshots_to_keep = 1;
+ */
+ protected $snapshots_to_keep = null;
+ /**
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ *
+ * Generated from protobuf field optional double minute = 2;
+ */
+ protected $minute = null;
+ /**
+ * Set the hour to start the snapshot (0-23), defaults to midnight (0).
+ *
+ * Generated from protobuf field optional double hour = 3;
+ */
+ protected $hour = null;
+ /**
+ * Set the day or days of the week to make a snapshot. Accepts a comma
+ * separated days of the week. Defaults to 'Sunday'.
+ *
+ * Generated from protobuf field optional string day = 4;
+ */
+ protected $day = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $snapshots_to_keep
+ * The maximum number of Snapshots to keep for the hourly schedule
+ * @type float $minute
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ * @type float $hour
+ * Set the hour to start the snapshot (0-23), defaults to midnight (0).
+ * @type string $day
+ * Set the day or days of the week to make a snapshot. Accepts a comma
+ * separated days of the week. Defaults to 'Sunday'.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Netapp\V1\Volume::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The maximum number of Snapshots to keep for the hourly schedule
+ *
+ * Generated from protobuf field optional double snapshots_to_keep = 1;
+ * @return float
+ */
+ public function getSnapshotsToKeep()
+ {
+ return isset($this->snapshots_to_keep) ? $this->snapshots_to_keep : 0.0;
+ }
+
+ public function hasSnapshotsToKeep()
+ {
+ return isset($this->snapshots_to_keep);
+ }
+
+ public function clearSnapshotsToKeep()
+ {
+ unset($this->snapshots_to_keep);
+ }
+
+ /**
+ * The maximum number of Snapshots to keep for the hourly schedule
+ *
+ * Generated from protobuf field optional double snapshots_to_keep = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setSnapshotsToKeep($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->snapshots_to_keep = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ *
+ * Generated from protobuf field optional double minute = 2;
+ * @return float
+ */
+ public function getMinute()
+ {
+ return isset($this->minute) ? $this->minute : 0.0;
+ }
+
+ public function hasMinute()
+ {
+ return isset($this->minute);
+ }
+
+ public function clearMinute()
+ {
+ unset($this->minute);
+ }
+
+ /**
+ * Set the minute of the hour to start the snapshot (0-59), defaults to the
+ * top of the hour (0).
+ *
+ * Generated from protobuf field optional double minute = 2;
+ * @param float $var
+ * @return $this
+ */
+ public function setMinute($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->minute = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set the hour to start the snapshot (0-23), defaults to midnight (0).
+ *
+ * Generated from protobuf field optional double hour = 3;
+ * @return float
+ */
+ public function getHour()
+ {
+ return isset($this->hour) ? $this->hour : 0.0;
+ }
+
+ public function hasHour()
+ {
+ return isset($this->hour);
+ }
+
+ public function clearHour()
+ {
+ unset($this->hour);
+ }
+
+ /**
+ * Set the hour to start the snapshot (0-23), defaults to midnight (0).
+ *
+ * Generated from protobuf field optional double hour = 3;
+ * @param float $var
+ * @return $this
+ */
+ public function setHour($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->hour = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set the day or days of the week to make a snapshot. Accepts a comma
+ * separated days of the week. Defaults to 'Sunday'.
+ *
+ * Generated from protobuf field optional string day = 4;
+ * @return string
+ */
+ public function getDay()
+ {
+ return isset($this->day) ? $this->day : '';
+ }
+
+ public function hasDay()
+ {
+ return isset($this->day);
+ }
+
+ public function clearDay()
+ {
+ unset($this->day);
+ }
+
+ /**
+ * Set the day or days of the week to make a snapshot. Accepts a comma
+ * separated days of the week. Defaults to 'Sunday'.
+ *
+ * Generated from protobuf field optional string day = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDay($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->day = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/NetApp/src/V1/gapic_metadata.json b/NetApp/src/V1/gapic_metadata.json
new file mode 100644
index 00000000000..3771cccaf2b
--- /dev/null
+++ b/NetApp/src/V1/gapic_metadata.json
@@ -0,0 +1,208 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.cloud.netapp.v1",
+ "libraryPackage": "Google\\Cloud\\NetApp\\V1",
+ "services": {
+ "NetApp": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "NetAppGapicClient",
+ "rpcs": {
+ "CreateActiveDirectory": {
+ "methods": [
+ "createActiveDirectory"
+ ]
+ },
+ "CreateKmsConfig": {
+ "methods": [
+ "createKmsConfig"
+ ]
+ },
+ "CreateReplication": {
+ "methods": [
+ "createReplication"
+ ]
+ },
+ "CreateSnapshot": {
+ "methods": [
+ "createSnapshot"
+ ]
+ },
+ "CreateStoragePool": {
+ "methods": [
+ "createStoragePool"
+ ]
+ },
+ "CreateVolume": {
+ "methods": [
+ "createVolume"
+ ]
+ },
+ "DeleteActiveDirectory": {
+ "methods": [
+ "deleteActiveDirectory"
+ ]
+ },
+ "DeleteKmsConfig": {
+ "methods": [
+ "deleteKmsConfig"
+ ]
+ },
+ "DeleteReplication": {
+ "methods": [
+ "deleteReplication"
+ ]
+ },
+ "DeleteSnapshot": {
+ "methods": [
+ "deleteSnapshot"
+ ]
+ },
+ "DeleteStoragePool": {
+ "methods": [
+ "deleteStoragePool"
+ ]
+ },
+ "DeleteVolume": {
+ "methods": [
+ "deleteVolume"
+ ]
+ },
+ "EncryptVolumes": {
+ "methods": [
+ "encryptVolumes"
+ ]
+ },
+ "GetActiveDirectory": {
+ "methods": [
+ "getActiveDirectory"
+ ]
+ },
+ "GetKmsConfig": {
+ "methods": [
+ "getKmsConfig"
+ ]
+ },
+ "GetReplication": {
+ "methods": [
+ "getReplication"
+ ]
+ },
+ "GetSnapshot": {
+ "methods": [
+ "getSnapshot"
+ ]
+ },
+ "GetStoragePool": {
+ "methods": [
+ "getStoragePool"
+ ]
+ },
+ "GetVolume": {
+ "methods": [
+ "getVolume"
+ ]
+ },
+ "ListActiveDirectories": {
+ "methods": [
+ "listActiveDirectories"
+ ]
+ },
+ "ListKmsConfigs": {
+ "methods": [
+ "listKmsConfigs"
+ ]
+ },
+ "ListReplications": {
+ "methods": [
+ "listReplications"
+ ]
+ },
+ "ListSnapshots": {
+ "methods": [
+ "listSnapshots"
+ ]
+ },
+ "ListStoragePools": {
+ "methods": [
+ "listStoragePools"
+ ]
+ },
+ "ListVolumes": {
+ "methods": [
+ "listVolumes"
+ ]
+ },
+ "ResumeReplication": {
+ "methods": [
+ "resumeReplication"
+ ]
+ },
+ "ReverseReplicationDirection": {
+ "methods": [
+ "reverseReplicationDirection"
+ ]
+ },
+ "RevertVolume": {
+ "methods": [
+ "revertVolume"
+ ]
+ },
+ "StopReplication": {
+ "methods": [
+ "stopReplication"
+ ]
+ },
+ "UpdateActiveDirectory": {
+ "methods": [
+ "updateActiveDirectory"
+ ]
+ },
+ "UpdateKmsConfig": {
+ "methods": [
+ "updateKmsConfig"
+ ]
+ },
+ "UpdateReplication": {
+ "methods": [
+ "updateReplication"
+ ]
+ },
+ "UpdateSnapshot": {
+ "methods": [
+ "updateSnapshot"
+ ]
+ },
+ "UpdateStoragePool": {
+ "methods": [
+ "updateStoragePool"
+ ]
+ },
+ "UpdateVolume": {
+ "methods": [
+ "updateVolume"
+ ]
+ },
+ "VerifyKmsConfig": {
+ "methods": [
+ "verifyKmsConfig"
+ ]
+ },
+ "GetLocation": {
+ "methods": [
+ "getLocation"
+ ]
+ },
+ "ListLocations": {
+ "methods": [
+ "listLocations"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/NetApp/src/V1/resources/net_app_client_config.json b/NetApp/src/V1/resources/net_app_client_config.json
new file mode 100644
index 00000000000..f30eec2a77b
--- /dev/null
+++ b/NetApp/src/V1/resources/net_app_client_config.json
@@ -0,0 +1,234 @@
+{
+ "interfaces": {
+ "google.cloud.netapp.v1.NetApp": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "retry_policy_1_codes": [
+ "UNAVAILABLE"
+ ],
+ "no_retry_1_codes": []
+ },
+ "retry_params": {
+ "no_retry_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 0,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 0,
+ "total_timeout_millis": 0
+ },
+ "retry_policy_1_params": {
+ "initial_retry_delay_millis": 1000,
+ "retry_delay_multiplier": 1.3,
+ "max_retry_delay_millis": 10000,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ },
+ "no_retry_1_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ }
+ },
+ "methods": {
+ "CreateActiveDirectory": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateKmsConfig": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateReplication": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateSnapshot": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateStoragePool": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateVolume": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteActiveDirectory": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteKmsConfig": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteReplication": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteSnapshot": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteStoragePool": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteVolume": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "EncryptVolumes": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetActiveDirectory": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetKmsConfig": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetReplication": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetSnapshot": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetStoragePool": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetVolume": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListActiveDirectories": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListKmsConfigs": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListReplications": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListSnapshots": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListStoragePools": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListVolumes": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ResumeReplication": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ReverseReplicationDirection": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "RevertVolume": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "StopReplication": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateActiveDirectory": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateKmsConfig": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateReplication": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateSnapshot": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateStoragePool": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateVolume": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "VerifyKmsConfig": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetLocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "ListLocations": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ }
+ }
+ }
+ }
+}
diff --git a/NetApp/src/V1/resources/net_app_descriptor_config.php b/NetApp/src/V1/resources/net_app_descriptor_config.php
new file mode 100644
index 00000000000..998b405110f
--- /dev/null
+++ b/NetApp/src/V1/resources/net_app_descriptor_config.php
@@ -0,0 +1,699 @@
+ [
+ 'google.cloud.netapp.v1.NetApp' => [
+ 'CreateActiveDirectory' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\ActiveDirectory',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateKmsConfig' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\KmsConfig',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateReplication' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\Replication',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateSnapshot' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\Snapshot',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateStoragePool' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\StoragePool',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateVolume' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\Volume',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteActiveDirectory' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteKmsConfig' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteReplication' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteSnapshot' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteStoragePool' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteVolume' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'EncryptVolumes' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\KmsConfig',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ResumeReplication' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\Replication',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ReverseReplicationDirection' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\Replication',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'RevertVolume' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\Volume',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'StopReplication' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\Replication',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateActiveDirectory' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\ActiveDirectory',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'active_directory.name',
+ 'fieldAccessors' => [
+ 'getActiveDirectory',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateKmsConfig' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\KmsConfig',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'kms_config.name',
+ 'fieldAccessors' => [
+ 'getKmsConfig',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateReplication' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\Replication',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'replication.name',
+ 'fieldAccessors' => [
+ 'getReplication',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateSnapshot' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\Snapshot',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'snapshot.name',
+ 'fieldAccessors' => [
+ 'getSnapshot',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateStoragePool' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\StoragePool',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'storage_pool.name',
+ 'fieldAccessors' => [
+ 'getStoragePool',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateVolume' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\NetApp\V1\Volume',
+ 'metadataReturnType' => '\Google\Cloud\NetApp\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'volume.name',
+ 'fieldAccessors' => [
+ 'getVolume',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetActiveDirectory' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\NetApp\V1\ActiveDirectory',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetKmsConfig' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\NetApp\V1\KmsConfig',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetReplication' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\NetApp\V1\Replication',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetSnapshot' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\NetApp\V1\Snapshot',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetStoragePool' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\NetApp\V1\StoragePool',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetVolume' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\NetApp\V1\Volume',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListActiveDirectories' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getActiveDirectories',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\NetApp\V1\ListActiveDirectoriesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListKmsConfigs' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getKmsConfigs',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\NetApp\V1\ListKmsConfigsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListReplications' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getReplications',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\NetApp\V1\ListReplicationsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListSnapshots' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getSnapshots',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\NetApp\V1\ListSnapshotsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListStoragePools' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getStoragePools',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\NetApp\V1\ListStoragePoolsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListVolumes' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getVolumes',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\NetApp\V1\ListVolumesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'VerifyKmsConfig' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\NetApp\V1\VerifyKmsConfigResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetLocation' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Location\Location',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'ListLocations' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getLocations',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Location\ListLocationsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'templateMap' => [
+ 'activeDirectory' => 'projects/{project}/locations/{location}/activeDirectories/{active_directory}',
+ 'kmsConfig' => 'projects/{project}/locations/{location}/kmsConfigs/{kms_config}',
+ 'location' => 'projects/{project}/locations/{location}',
+ 'network' => 'projects/{project}/global/networks/{network}',
+ 'replication' => 'projects/{project}/locations/{location}/volumes/{volume}/replications/{replication}',
+ 'snapshot' => 'projects/{project}/locations/{location}/volumes/{volume}/snapshots/{snapshot}',
+ 'storagePool' => 'projects/{project}/locations/{location}/storagePools/{storage_pool}',
+ 'volume' => 'projects/{project}/locations/{location}/volumes/{volume}',
+ ],
+ ],
+ ],
+];
diff --git a/NetApp/src/V1/resources/net_app_rest_client_config.php b/NetApp/src/V1/resources/net_app_rest_client_config.php
new file mode 100644
index 00000000000..83b2bfa4b2a
--- /dev/null
+++ b/NetApp/src/V1/resources/net_app_rest_client_config.php
@@ -0,0 +1,536 @@
+ [
+ 'google.cloud.location.Locations' => [
+ 'GetLocation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListLocations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*}/locations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.cloud.netapp.v1.NetApp' => [
+ 'CreateActiveDirectory' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/activeDirectories',
+ 'body' => 'active_directory',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'active_directory_id',
+ ],
+ ],
+ 'CreateKmsConfig' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/kmsConfigs',
+ 'body' => 'kms_config',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'kms_config_id',
+ ],
+ ],
+ 'CreateReplication' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/volumes/*}/replications',
+ 'body' => 'replication',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'replication_id',
+ ],
+ ],
+ 'CreateSnapshot' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/volumes/*}/snapshots',
+ 'body' => 'snapshot',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'snapshot_id',
+ ],
+ ],
+ 'CreateStoragePool' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/storagePools',
+ 'body' => 'storage_pool',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'storage_pool_id',
+ ],
+ ],
+ 'CreateVolume' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/volumes',
+ 'body' => 'volume',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'volume_id',
+ ],
+ ],
+ 'DeleteActiveDirectory' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/activeDirectories/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteKmsConfig' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/kmsConfigs/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteReplication' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/volumes/*/replications/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteSnapshot' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/volumes/*/snapshots/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteStoragePool' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/storagePools/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteVolume' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/volumes/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'EncryptVolumes' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/kmsConfigs/*}:encrypt',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetActiveDirectory' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/activeDirectories/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetKmsConfig' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/kmsConfigs/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetReplication' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/volumes/*/replications/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetSnapshot' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/volumes/*/snapshots/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetStoragePool' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/storagePools/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetVolume' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/volumes/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListActiveDirectories' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/activeDirectories',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListKmsConfigs' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/kmsConfigs',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListReplications' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/volumes/*}/replications',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListSnapshots' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/volumes/*}/snapshots',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListStoragePools' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/storagePools',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListVolumes' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/volumes',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ResumeReplication' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/volumes/*/replications/*}:resume',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ReverseReplicationDirection' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/volumes/*/replications/*}:reverseDirection',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'RevertVolume' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/volumes/*}:revert',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'StopReplication' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/volumes/*/replications/*}:stop',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateActiveDirectory' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{active_directory.name=projects/*/locations/*/activeDirectories/*}',
+ 'body' => 'active_directory',
+ 'placeholders' => [
+ 'active_directory.name' => [
+ 'getters' => [
+ 'getActiveDirectory',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateKmsConfig' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{kms_config.name=projects/*/locations/*/kmsConfigs/*}',
+ 'body' => 'kms_config',
+ 'placeholders' => [
+ 'kms_config.name' => [
+ 'getters' => [
+ 'getKmsConfig',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateReplication' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{replication.name=projects/*/locations/*/volumes/*/replications/*}',
+ 'body' => 'replication',
+ 'placeholders' => [
+ 'replication.name' => [
+ 'getters' => [
+ 'getReplication',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateSnapshot' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{snapshot.name=projects/*/locations/*/volumes/*/snapshots/*}',
+ 'body' => 'snapshot',
+ 'placeholders' => [
+ 'snapshot.name' => [
+ 'getters' => [
+ 'getSnapshot',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateStoragePool' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{storage_pool.name=projects/*/locations/*/storagePools/*}',
+ 'body' => 'storage_pool',
+ 'placeholders' => [
+ 'storage_pool.name' => [
+ 'getters' => [
+ 'getStoragePool',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateVolume' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{volume.name=projects/*/locations/*/volumes/*}',
+ 'body' => 'volume',
+ 'placeholders' => [
+ 'volume.name' => [
+ 'getters' => [
+ 'getVolume',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'VerifyKmsConfig' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/kmsConfigs/*}:verify',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}:cancel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteOperation' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListOperations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*}/operations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/NetApp/tests/Unit/V1/Client/NetAppClientTest.php b/NetApp/tests/Unit/V1/Client/NetAppClientTest.php
new file mode 100644
index 00000000000..fce32c9b72c
--- /dev/null
+++ b/NetApp/tests/Unit/V1/Client/NetAppClientTest.php
@@ -0,0 +1,4705 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return NetAppClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new NetAppClient($options);
+ }
+
+ /** @test */
+ public function createActiveDirectoryTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createActiveDirectoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $domain = 'domain-1326197564';
+ $site = 'site3530567';
+ $dns = 'dns99625';
+ $netBiosPrefix = 'netBiosPrefix865554756';
+ $organizationalUnit = 'organizationalUnit-694432635';
+ $aesEncryption = false;
+ $username = 'username-265713450';
+ $password = 'password1216985755';
+ $kdcHostname = 'kdcHostname-863813976';
+ $kdcIp = 'kdcIp-1136252068';
+ $nfsUsersWithLdap = false;
+ $description = 'description-1724546052';
+ $ldapSigning = false;
+ $encryptDcConnections = false;
+ $stateDetails = 'stateDetails632437908';
+ $expectedResponse = new ActiveDirectory();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDomain($domain);
+ $expectedResponse->setSite($site);
+ $expectedResponse->setDns($dns);
+ $expectedResponse->setNetBiosPrefix($netBiosPrefix);
+ $expectedResponse->setOrganizationalUnit($organizationalUnit);
+ $expectedResponse->setAesEncryption($aesEncryption);
+ $expectedResponse->setUsername($username);
+ $expectedResponse->setPassword($password);
+ $expectedResponse->setKdcHostname($kdcHostname);
+ $expectedResponse->setKdcIp($kdcIp);
+ $expectedResponse->setNfsUsersWithLdap($nfsUsersWithLdap);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setLdapSigning($ldapSigning);
+ $expectedResponse->setEncryptDcConnections($encryptDcConnections);
+ $expectedResponse->setStateDetails($stateDetails);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createActiveDirectoryTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $activeDirectory = new ActiveDirectory();
+ $activeDirectoryDomain = 'activeDirectoryDomain1710368171';
+ $activeDirectory->setDomain($activeDirectoryDomain);
+ $activeDirectoryDns = 'activeDirectoryDns1090270626';
+ $activeDirectory->setDns($activeDirectoryDns);
+ $activeDirectoryNetBiosPrefix = 'activeDirectoryNetBiosPrefix-1870358125';
+ $activeDirectory->setNetBiosPrefix($activeDirectoryNetBiosPrefix);
+ $activeDirectoryUsername = 'activeDirectoryUsername1591163901';
+ $activeDirectory->setUsername($activeDirectoryUsername);
+ $activeDirectoryPassword = 'activeDirectoryPassword-1221104190';
+ $activeDirectory->setPassword($activeDirectoryPassword);
+ $activeDirectoryId = 'activeDirectoryId1363092678';
+ $request = (new CreateActiveDirectoryRequest())
+ ->setParent($formattedParent)
+ ->setActiveDirectory($activeDirectory)
+ ->setActiveDirectoryId($activeDirectoryId);
+ $response = $gapicClient->createActiveDirectory($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/CreateActiveDirectory', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getActiveDirectory();
+ $this->assertProtobufEquals($activeDirectory, $actualValue);
+ $actualValue = $actualApiRequestObject->getActiveDirectoryId();
+ $this->assertProtobufEquals($activeDirectoryId, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createActiveDirectoryTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createActiveDirectoryExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createActiveDirectoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $activeDirectory = new ActiveDirectory();
+ $activeDirectoryDomain = 'activeDirectoryDomain1710368171';
+ $activeDirectory->setDomain($activeDirectoryDomain);
+ $activeDirectoryDns = 'activeDirectoryDns1090270626';
+ $activeDirectory->setDns($activeDirectoryDns);
+ $activeDirectoryNetBiosPrefix = 'activeDirectoryNetBiosPrefix-1870358125';
+ $activeDirectory->setNetBiosPrefix($activeDirectoryNetBiosPrefix);
+ $activeDirectoryUsername = 'activeDirectoryUsername1591163901';
+ $activeDirectory->setUsername($activeDirectoryUsername);
+ $activeDirectoryPassword = 'activeDirectoryPassword-1221104190';
+ $activeDirectory->setPassword($activeDirectoryPassword);
+ $activeDirectoryId = 'activeDirectoryId1363092678';
+ $request = (new CreateActiveDirectoryRequest())
+ ->setParent($formattedParent)
+ ->setActiveDirectory($activeDirectory)
+ ->setActiveDirectoryId($activeDirectoryId);
+ $response = $gapicClient->createActiveDirectory($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createActiveDirectoryTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createKmsConfigTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createKmsConfigTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $cryptoKeyName = 'cryptoKeyName-184663511';
+ $stateDetails = 'stateDetails632437908';
+ $description = 'description-1724546052';
+ $instructions = 'instructions757376421';
+ $serviceAccount = 'serviceAccount-1948028253';
+ $expectedResponse = new KmsConfig();
+ $expectedResponse->setName($name);
+ $expectedResponse->setCryptoKeyName($cryptoKeyName);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setInstructions($instructions);
+ $expectedResponse->setServiceAccount($serviceAccount);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createKmsConfigTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $kmsConfigId = 'kmsConfigId1366390730';
+ $kmsConfig = new KmsConfig();
+ $kmsConfigCryptoKeyName = 'kmsConfigCryptoKeyName2110252630';
+ $kmsConfig->setCryptoKeyName($kmsConfigCryptoKeyName);
+ $request = (new CreateKmsConfigRequest())
+ ->setParent($formattedParent)
+ ->setKmsConfigId($kmsConfigId)
+ ->setKmsConfig($kmsConfig);
+ $response = $gapicClient->createKmsConfig($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/CreateKmsConfig', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getKmsConfigId();
+ $this->assertProtobufEquals($kmsConfigId, $actualValue);
+ $actualValue = $actualApiRequestObject->getKmsConfig();
+ $this->assertProtobufEquals($kmsConfig, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createKmsConfigTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createKmsConfigExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createKmsConfigTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $kmsConfigId = 'kmsConfigId1366390730';
+ $kmsConfig = new KmsConfig();
+ $kmsConfigCryptoKeyName = 'kmsConfigCryptoKeyName2110252630';
+ $kmsConfig->setCryptoKeyName($kmsConfigCryptoKeyName);
+ $request = (new CreateKmsConfigRequest())
+ ->setParent($formattedParent)
+ ->setKmsConfigId($kmsConfigId)
+ ->setKmsConfig($kmsConfig);
+ $response = $gapicClient->createKmsConfig($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createKmsConfigTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createReplicationTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createReplicationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $stateDetails = 'stateDetails632437908';
+ $healthy = false;
+ $destinationVolume = 'destinationVolume-1177512853';
+ $description = 'description-1724546052';
+ $sourceVolume = 'sourceVolume327497662';
+ $expectedResponse = new Replication();
+ $expectedResponse->setName($name);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setHealthy($healthy);
+ $expectedResponse->setDestinationVolume($destinationVolume);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setSourceVolume($sourceVolume);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createReplicationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $replication = new Replication();
+ $replicationReplicationSchedule = ReplicationSchedule::REPLICATION_SCHEDULE_UNSPECIFIED;
+ $replication->setReplicationSchedule($replicationReplicationSchedule);
+ $replicationDestinationVolumeParameters = new DestinationVolumeParameters();
+ $destinationVolumeParametersStoragePool = $gapicClient->storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+ $replicationDestinationVolumeParameters->setStoragePool($destinationVolumeParametersStoragePool);
+ $replication->setDestinationVolumeParameters($replicationDestinationVolumeParameters);
+ $replicationId = 'replicationId1935722094';
+ $request = (new CreateReplicationRequest())
+ ->setParent($formattedParent)
+ ->setReplication($replication)
+ ->setReplicationId($replicationId);
+ $response = $gapicClient->createReplication($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/CreateReplication', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getReplication();
+ $this->assertProtobufEquals($replication, $actualValue);
+ $actualValue = $actualApiRequestObject->getReplicationId();
+ $this->assertProtobufEquals($replicationId, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createReplicationTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createReplicationExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createReplicationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $replication = new Replication();
+ $replicationReplicationSchedule = ReplicationSchedule::REPLICATION_SCHEDULE_UNSPECIFIED;
+ $replication->setReplicationSchedule($replicationReplicationSchedule);
+ $replicationDestinationVolumeParameters = new DestinationVolumeParameters();
+ $destinationVolumeParametersStoragePool = $gapicClient->storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+ $replicationDestinationVolumeParameters->setStoragePool($destinationVolumeParametersStoragePool);
+ $replication->setDestinationVolumeParameters($replicationDestinationVolumeParameters);
+ $replicationId = 'replicationId1935722094';
+ $request = (new CreateReplicationRequest())
+ ->setParent($formattedParent)
+ ->setReplication($replication)
+ ->setReplicationId($replicationId);
+ $response = $gapicClient->createReplication($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createReplicationTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createSnapshotTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createSnapshotTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $stateDetails = 'stateDetails632437908';
+ $description = 'description-1724546052';
+ $usedBytes = -1.91584322E8;
+ $expectedResponse = new Snapshot();
+ $expectedResponse->setName($name);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setUsedBytes($usedBytes);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createSnapshotTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $snapshot = new Snapshot();
+ $snapshotId = 'snapshotId-168585866';
+ $request = (new CreateSnapshotRequest())
+ ->setParent($formattedParent)
+ ->setSnapshot($snapshot)
+ ->setSnapshotId($snapshotId);
+ $response = $gapicClient->createSnapshot($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/CreateSnapshot', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getSnapshot();
+ $this->assertProtobufEquals($snapshot, $actualValue);
+ $actualValue = $actualApiRequestObject->getSnapshotId();
+ $this->assertProtobufEquals($snapshotId, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createSnapshotTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createSnapshotExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createSnapshotTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $snapshot = new Snapshot();
+ $snapshotId = 'snapshotId-168585866';
+ $request = (new CreateSnapshotRequest())
+ ->setParent($formattedParent)
+ ->setSnapshot($snapshot)
+ ->setSnapshotId($snapshotId);
+ $response = $gapicClient->createSnapshot($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createSnapshotTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createStoragePoolTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createStoragePoolTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $capacityGib = 498394811;
+ $volumeCapacityGib = 643777472;
+ $volumeCount = 1362665558;
+ $stateDetails = 'stateDetails632437908';
+ $description = 'description-1724546052';
+ $network = 'network1843485230';
+ $activeDirectory = 'activeDirectory475662452';
+ $kmsConfig = 'kmsConfig917255152';
+ $ldapEnabled = false;
+ $psaRange = 'psaRange1004849276';
+ $globalAccessAllowed = false;
+ $expectedResponse = new StoragePool();
+ $expectedResponse->setName($name);
+ $expectedResponse->setCapacityGib($capacityGib);
+ $expectedResponse->setVolumeCapacityGib($volumeCapacityGib);
+ $expectedResponse->setVolumeCount($volumeCount);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setActiveDirectory($activeDirectory);
+ $expectedResponse->setKmsConfig($kmsConfig);
+ $expectedResponse->setLdapEnabled($ldapEnabled);
+ $expectedResponse->setPsaRange($psaRange);
+ $expectedResponse->setGlobalAccessAllowed($globalAccessAllowed);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createStoragePoolTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $storagePoolId = 'storagePoolId909234778';
+ $storagePool = new StoragePool();
+ $storagePoolServiceLevel = ServiceLevel::SERVICE_LEVEL_UNSPECIFIED;
+ $storagePool->setServiceLevel($storagePoolServiceLevel);
+ $storagePoolCapacityGib = 1260910865;
+ $storagePool->setCapacityGib($storagePoolCapacityGib);
+ $storagePoolNetwork = $gapicClient->networkName('[PROJECT]', '[NETWORK]');
+ $storagePool->setNetwork($storagePoolNetwork);
+ $request = (new CreateStoragePoolRequest())
+ ->setParent($formattedParent)
+ ->setStoragePoolId($storagePoolId)
+ ->setStoragePool($storagePool);
+ $response = $gapicClient->createStoragePool($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/CreateStoragePool', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getStoragePoolId();
+ $this->assertProtobufEquals($storagePoolId, $actualValue);
+ $actualValue = $actualApiRequestObject->getStoragePool();
+ $this->assertProtobufEquals($storagePool, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createStoragePoolTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createStoragePoolExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createStoragePoolTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $storagePoolId = 'storagePoolId909234778';
+ $storagePool = new StoragePool();
+ $storagePoolServiceLevel = ServiceLevel::SERVICE_LEVEL_UNSPECIFIED;
+ $storagePool->setServiceLevel($storagePoolServiceLevel);
+ $storagePoolCapacityGib = 1260910865;
+ $storagePool->setCapacityGib($storagePoolCapacityGib);
+ $storagePoolNetwork = $gapicClient->networkName('[PROJECT]', '[NETWORK]');
+ $storagePool->setNetwork($storagePoolNetwork);
+ $request = (new CreateStoragePoolRequest())
+ ->setParent($formattedParent)
+ ->setStoragePoolId($storagePoolId)
+ ->setStoragePool($storagePool);
+ $response = $gapicClient->createStoragePool($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createStoragePoolTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createVolumeTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createVolumeTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $stateDetails = 'stateDetails632437908';
+ $shareName = 'shareName-1788152085';
+ $psaRange = 'psaRange1004849276';
+ $storagePool = 'storagePool897344352';
+ $network = 'network1843485230';
+ $capacityGib = 498394811;
+ $unixPermissions = 'unixPermissions1137975373';
+ $description = 'description-1724546052';
+ $snapReserve = -1.42958764E8;
+ $snapshotDirectory = true;
+ $usedGib = 279083970;
+ $kerberosEnabled = false;
+ $ldapEnabled = false;
+ $activeDirectory = 'activeDirectory475662452';
+ $kmsConfig = 'kmsConfig917255152';
+ $hasReplication = false;
+ $expectedResponse = new Volume();
+ $expectedResponse->setName($name);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setShareName($shareName);
+ $expectedResponse->setPsaRange($psaRange);
+ $expectedResponse->setStoragePool($storagePool);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setCapacityGib($capacityGib);
+ $expectedResponse->setUnixPermissions($unixPermissions);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setSnapReserve($snapReserve);
+ $expectedResponse->setSnapshotDirectory($snapshotDirectory);
+ $expectedResponse->setUsedGib($usedGib);
+ $expectedResponse->setKerberosEnabled($kerberosEnabled);
+ $expectedResponse->setLdapEnabled($ldapEnabled);
+ $expectedResponse->setActiveDirectory($activeDirectory);
+ $expectedResponse->setKmsConfig($kmsConfig);
+ $expectedResponse->setHasReplication($hasReplication);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createVolumeTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $volumeId = 'volumeId-2128282528';
+ $volume = new Volume();
+ $volumeShareName = 'volumeShareName1564593424';
+ $volume->setShareName($volumeShareName);
+ $volumeStoragePool = $gapicClient->storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+ $volume->setStoragePool($volumeStoragePool);
+ $volumeCapacityGib = 1491387092;
+ $volume->setCapacityGib($volumeCapacityGib);
+ $volumeProtocols = [];
+ $volume->setProtocols($volumeProtocols);
+ $request = (new CreateVolumeRequest())
+ ->setParent($formattedParent)
+ ->setVolumeId($volumeId)
+ ->setVolume($volume);
+ $response = $gapicClient->createVolume($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/CreateVolume', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getVolumeId();
+ $this->assertProtobufEquals($volumeId, $actualValue);
+ $actualValue = $actualApiRequestObject->getVolume();
+ $this->assertProtobufEquals($volume, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createVolumeTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createVolumeExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createVolumeTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $volumeId = 'volumeId-2128282528';
+ $volume = new Volume();
+ $volumeShareName = 'volumeShareName1564593424';
+ $volume->setShareName($volumeShareName);
+ $volumeStoragePool = $gapicClient->storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+ $volume->setStoragePool($volumeStoragePool);
+ $volumeCapacityGib = 1491387092;
+ $volume->setCapacityGib($volumeCapacityGib);
+ $volumeProtocols = [];
+ $volume->setProtocols($volumeProtocols);
+ $request = (new CreateVolumeRequest())
+ ->setParent($formattedParent)
+ ->setVolumeId($volumeId)
+ ->setVolume($volume);
+ $response = $gapicClient->createVolume($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createVolumeTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteActiveDirectoryTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteActiveDirectoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteActiveDirectoryTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->activeDirectoryName('[PROJECT]', '[LOCATION]', '[ACTIVE_DIRECTORY]');
+ $request = (new DeleteActiveDirectoryRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteActiveDirectory($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/DeleteActiveDirectory', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteActiveDirectoryTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteActiveDirectoryExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteActiveDirectoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->activeDirectoryName('[PROJECT]', '[LOCATION]', '[ACTIVE_DIRECTORY]');
+ $request = (new DeleteActiveDirectoryRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteActiveDirectory($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteActiveDirectoryTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteKmsConfigTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteKmsConfigTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteKmsConfigTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->kmsConfigName('[PROJECT]', '[LOCATION]', '[KMS_CONFIG]');
+ $request = (new DeleteKmsConfigRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteKmsConfig($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/DeleteKmsConfig', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteKmsConfigTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteKmsConfigExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteKmsConfigTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->kmsConfigName('[PROJECT]', '[LOCATION]', '[KMS_CONFIG]');
+ $request = (new DeleteKmsConfigRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteKmsConfig($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteKmsConfigTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteReplicationTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteReplicationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteReplicationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->replicationName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[REPLICATION]');
+ $request = (new DeleteReplicationRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteReplication($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/DeleteReplication', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteReplicationTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteReplicationExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteReplicationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->replicationName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[REPLICATION]');
+ $request = (new DeleteReplicationRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteReplication($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteReplicationTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteSnapshotTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteSnapshotTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteSnapshotTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->snapshotName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[SNAPSHOT]');
+ $request = (new DeleteSnapshotRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteSnapshot($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/DeleteSnapshot', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteSnapshotTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteSnapshotExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteSnapshotTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->snapshotName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[SNAPSHOT]');
+ $request = (new DeleteSnapshotRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteSnapshot($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteSnapshotTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteStoragePoolTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteStoragePoolTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteStoragePoolTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+ $request = (new DeleteStoragePoolRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteStoragePool($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/DeleteStoragePool', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteStoragePoolTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteStoragePoolExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteStoragePoolTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+ $request = (new DeleteStoragePoolRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteStoragePool($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteStoragePoolTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteVolumeTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteVolumeTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteVolumeTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $request = (new DeleteVolumeRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteVolume($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/DeleteVolume', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteVolumeTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteVolumeExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteVolumeTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $request = (new DeleteVolumeRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteVolume($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteVolumeTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function encryptVolumesTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/encryptVolumesTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $cryptoKeyName = 'cryptoKeyName-184663511';
+ $stateDetails = 'stateDetails632437908';
+ $description = 'description-1724546052';
+ $instructions = 'instructions757376421';
+ $serviceAccount = 'serviceAccount-1948028253';
+ $expectedResponse = new KmsConfig();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setCryptoKeyName($cryptoKeyName);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setInstructions($instructions);
+ $expectedResponse->setServiceAccount($serviceAccount);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/encryptVolumesTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->kmsConfigName('[PROJECT]', '[LOCATION]', '[KMS_CONFIG]');
+ $request = (new EncryptVolumesRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->encryptVolumes($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/EncryptVolumes', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/encryptVolumesTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function encryptVolumesExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/encryptVolumesTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->kmsConfigName('[PROJECT]', '[LOCATION]', '[KMS_CONFIG]');
+ $request = (new EncryptVolumesRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->encryptVolumes($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/encryptVolumesTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function getActiveDirectoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $domain = 'domain-1326197564';
+ $site = 'site3530567';
+ $dns = 'dns99625';
+ $netBiosPrefix = 'netBiosPrefix865554756';
+ $organizationalUnit = 'organizationalUnit-694432635';
+ $aesEncryption = false;
+ $username = 'username-265713450';
+ $password = 'password1216985755';
+ $kdcHostname = 'kdcHostname-863813976';
+ $kdcIp = 'kdcIp-1136252068';
+ $nfsUsersWithLdap = false;
+ $description = 'description-1724546052';
+ $ldapSigning = false;
+ $encryptDcConnections = false;
+ $stateDetails = 'stateDetails632437908';
+ $expectedResponse = new ActiveDirectory();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDomain($domain);
+ $expectedResponse->setSite($site);
+ $expectedResponse->setDns($dns);
+ $expectedResponse->setNetBiosPrefix($netBiosPrefix);
+ $expectedResponse->setOrganizationalUnit($organizationalUnit);
+ $expectedResponse->setAesEncryption($aesEncryption);
+ $expectedResponse->setUsername($username);
+ $expectedResponse->setPassword($password);
+ $expectedResponse->setKdcHostname($kdcHostname);
+ $expectedResponse->setKdcIp($kdcIp);
+ $expectedResponse->setNfsUsersWithLdap($nfsUsersWithLdap);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setLdapSigning($ldapSigning);
+ $expectedResponse->setEncryptDcConnections($encryptDcConnections);
+ $expectedResponse->setStateDetails($stateDetails);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->activeDirectoryName('[PROJECT]', '[LOCATION]', '[ACTIVE_DIRECTORY]');
+ $request = (new GetActiveDirectoryRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getActiveDirectory($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/GetActiveDirectory', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getActiveDirectoryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->activeDirectoryName('[PROJECT]', '[LOCATION]', '[ACTIVE_DIRECTORY]');
+ $request = (new GetActiveDirectoryRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getActiveDirectory($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getKmsConfigTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $cryptoKeyName = 'cryptoKeyName-184663511';
+ $stateDetails = 'stateDetails632437908';
+ $description = 'description-1724546052';
+ $instructions = 'instructions757376421';
+ $serviceAccount = 'serviceAccount-1948028253';
+ $expectedResponse = new KmsConfig();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setCryptoKeyName($cryptoKeyName);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setInstructions($instructions);
+ $expectedResponse->setServiceAccount($serviceAccount);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->kmsConfigName('[PROJECT]', '[LOCATION]', '[KMS_CONFIG]');
+ $request = (new GetKmsConfigRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getKmsConfig($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/GetKmsConfig', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getKmsConfigExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->kmsConfigName('[PROJECT]', '[LOCATION]', '[KMS_CONFIG]');
+ $request = (new GetKmsConfigRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getKmsConfig($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getReplicationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $stateDetails = 'stateDetails632437908';
+ $healthy = false;
+ $destinationVolume = 'destinationVolume-1177512853';
+ $description = 'description-1724546052';
+ $sourceVolume = 'sourceVolume327497662';
+ $expectedResponse = new Replication();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setHealthy($healthy);
+ $expectedResponse->setDestinationVolume($destinationVolume);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setSourceVolume($sourceVolume);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->replicationName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[REPLICATION]');
+ $request = (new GetReplicationRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getReplication($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/GetReplication', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getReplicationExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->replicationName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[REPLICATION]');
+ $request = (new GetReplicationRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getReplication($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getSnapshotTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $stateDetails = 'stateDetails632437908';
+ $description = 'description-1724546052';
+ $usedBytes = -1.91584322E8;
+ $expectedResponse = new Snapshot();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setUsedBytes($usedBytes);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->snapshotName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[SNAPSHOT]');
+ $request = (new GetSnapshotRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getSnapshot($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/GetSnapshot', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getSnapshotExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->snapshotName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[SNAPSHOT]');
+ $request = (new GetSnapshotRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getSnapshot($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getStoragePoolTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $capacityGib = 498394811;
+ $volumeCapacityGib = 643777472;
+ $volumeCount = 1362665558;
+ $stateDetails = 'stateDetails632437908';
+ $description = 'description-1724546052';
+ $network = 'network1843485230';
+ $activeDirectory = 'activeDirectory475662452';
+ $kmsConfig = 'kmsConfig917255152';
+ $ldapEnabled = false;
+ $psaRange = 'psaRange1004849276';
+ $globalAccessAllowed = false;
+ $expectedResponse = new StoragePool();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setCapacityGib($capacityGib);
+ $expectedResponse->setVolumeCapacityGib($volumeCapacityGib);
+ $expectedResponse->setVolumeCount($volumeCount);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setActiveDirectory($activeDirectory);
+ $expectedResponse->setKmsConfig($kmsConfig);
+ $expectedResponse->setLdapEnabled($ldapEnabled);
+ $expectedResponse->setPsaRange($psaRange);
+ $expectedResponse->setGlobalAccessAllowed($globalAccessAllowed);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+ $request = (new GetStoragePoolRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getStoragePool($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/GetStoragePool', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getStoragePoolExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+ $request = (new GetStoragePoolRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getStoragePool($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getVolumeTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $stateDetails = 'stateDetails632437908';
+ $shareName = 'shareName-1788152085';
+ $psaRange = 'psaRange1004849276';
+ $storagePool = 'storagePool897344352';
+ $network = 'network1843485230';
+ $capacityGib = 498394811;
+ $unixPermissions = 'unixPermissions1137975373';
+ $description = 'description-1724546052';
+ $snapReserve = -1.42958764E8;
+ $snapshotDirectory = true;
+ $usedGib = 279083970;
+ $kerberosEnabled = false;
+ $ldapEnabled = false;
+ $activeDirectory = 'activeDirectory475662452';
+ $kmsConfig = 'kmsConfig917255152';
+ $hasReplication = false;
+ $expectedResponse = new Volume();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setShareName($shareName);
+ $expectedResponse->setPsaRange($psaRange);
+ $expectedResponse->setStoragePool($storagePool);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setCapacityGib($capacityGib);
+ $expectedResponse->setUnixPermissions($unixPermissions);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setSnapReserve($snapReserve);
+ $expectedResponse->setSnapshotDirectory($snapshotDirectory);
+ $expectedResponse->setUsedGib($usedGib);
+ $expectedResponse->setKerberosEnabled($kerberosEnabled);
+ $expectedResponse->setLdapEnabled($ldapEnabled);
+ $expectedResponse->setActiveDirectory($activeDirectory);
+ $expectedResponse->setKmsConfig($kmsConfig);
+ $expectedResponse->setHasReplication($hasReplication);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $request = (new GetVolumeRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getVolume($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/GetVolume', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getVolumeExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $request = (new GetVolumeRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getVolume($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listActiveDirectoriesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $activeDirectoriesElement = new ActiveDirectory();
+ $activeDirectories = [
+ $activeDirectoriesElement,
+ ];
+ $expectedResponse = new ListActiveDirectoriesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setActiveDirectories($activeDirectories);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListActiveDirectoriesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listActiveDirectories($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getActiveDirectories()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/ListActiveDirectories', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listActiveDirectoriesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListActiveDirectoriesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listActiveDirectories($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listKmsConfigsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $kmsConfigsElement = new KmsConfig();
+ $kmsConfigs = [
+ $kmsConfigsElement,
+ ];
+ $expectedResponse = new ListKmsConfigsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setKmsConfigs($kmsConfigs);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListKmsConfigsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listKmsConfigs($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getKmsConfigs()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/ListKmsConfigs', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listKmsConfigsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListKmsConfigsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listKmsConfigs($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listReplicationsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $replicationsElement = new Replication();
+ $replications = [
+ $replicationsElement,
+ ];
+ $expectedResponse = new ListReplicationsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setReplications($replications);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $request = (new ListReplicationsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listReplications($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getReplications()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/ListReplications', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listReplicationsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $request = (new ListReplicationsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listReplications($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listSnapshotsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $snapshotsElement = new Snapshot();
+ $snapshots = [
+ $snapshotsElement,
+ ];
+ $expectedResponse = new ListSnapshotsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setSnapshots($snapshots);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $request = (new ListSnapshotsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listSnapshots($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getSnapshots()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/ListSnapshots', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listSnapshotsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $request = (new ListSnapshotsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listSnapshots($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listStoragePoolsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $storagePoolsElement = new StoragePool();
+ $storagePools = [
+ $storagePoolsElement,
+ ];
+ $expectedResponse = new ListStoragePoolsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setStoragePools($storagePools);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListStoragePoolsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listStoragePools($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getStoragePools()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/ListStoragePools', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listStoragePoolsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListStoragePoolsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listStoragePools($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listVolumesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $volumesElement = new Volume();
+ $volumes = [
+ $volumesElement,
+ ];
+ $expectedResponse = new ListVolumesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setVolumes($volumes);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListVolumesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listVolumes($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getVolumes()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/ListVolumes', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listVolumesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListVolumesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listVolumes($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function resumeReplicationTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/resumeReplicationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $stateDetails = 'stateDetails632437908';
+ $healthy = false;
+ $destinationVolume = 'destinationVolume-1177512853';
+ $description = 'description-1724546052';
+ $sourceVolume = 'sourceVolume327497662';
+ $expectedResponse = new Replication();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setHealthy($healthy);
+ $expectedResponse->setDestinationVolume($destinationVolume);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setSourceVolume($sourceVolume);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/resumeReplicationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->replicationName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[REPLICATION]');
+ $request = (new ResumeReplicationRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->resumeReplication($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/ResumeReplication', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/resumeReplicationTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function resumeReplicationExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/resumeReplicationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->replicationName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[REPLICATION]');
+ $request = (new ResumeReplicationRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->resumeReplication($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/resumeReplicationTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function reverseReplicationDirectionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/reverseReplicationDirectionTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $stateDetails = 'stateDetails632437908';
+ $healthy = false;
+ $destinationVolume = 'destinationVolume-1177512853';
+ $description = 'description-1724546052';
+ $sourceVolume = 'sourceVolume327497662';
+ $expectedResponse = new Replication();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setHealthy($healthy);
+ $expectedResponse->setDestinationVolume($destinationVolume);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setSourceVolume($sourceVolume);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/reverseReplicationDirectionTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->replicationName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[REPLICATION]');
+ $request = (new ReverseReplicationDirectionRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->reverseReplicationDirection($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/ReverseReplicationDirection', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/reverseReplicationDirectionTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function reverseReplicationDirectionExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/reverseReplicationDirectionTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->replicationName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[REPLICATION]');
+ $request = (new ReverseReplicationDirectionRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->reverseReplicationDirection($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/reverseReplicationDirectionTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function revertVolumeTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/revertVolumeTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $stateDetails = 'stateDetails632437908';
+ $shareName = 'shareName-1788152085';
+ $psaRange = 'psaRange1004849276';
+ $storagePool = 'storagePool897344352';
+ $network = 'network1843485230';
+ $capacityGib = 498394811;
+ $unixPermissions = 'unixPermissions1137975373';
+ $description = 'description-1724546052';
+ $snapReserve = -1.42958764E8;
+ $snapshotDirectory = true;
+ $usedGib = 279083970;
+ $kerberosEnabled = false;
+ $ldapEnabled = false;
+ $activeDirectory = 'activeDirectory475662452';
+ $kmsConfig = 'kmsConfig917255152';
+ $hasReplication = false;
+ $expectedResponse = new Volume();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setShareName($shareName);
+ $expectedResponse->setPsaRange($psaRange);
+ $expectedResponse->setStoragePool($storagePool);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setCapacityGib($capacityGib);
+ $expectedResponse->setUnixPermissions($unixPermissions);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setSnapReserve($snapReserve);
+ $expectedResponse->setSnapshotDirectory($snapshotDirectory);
+ $expectedResponse->setUsedGib($usedGib);
+ $expectedResponse->setKerberosEnabled($kerberosEnabled);
+ $expectedResponse->setLdapEnabled($ldapEnabled);
+ $expectedResponse->setActiveDirectory($activeDirectory);
+ $expectedResponse->setKmsConfig($kmsConfig);
+ $expectedResponse->setHasReplication($hasReplication);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/revertVolumeTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $snapshotId = 'snapshotId-168585866';
+ $request = (new RevertVolumeRequest())
+ ->setName($formattedName)
+ ->setSnapshotId($snapshotId);
+ $response = $gapicClient->revertVolume($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/RevertVolume', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $actualValue = $actualApiRequestObject->getSnapshotId();
+ $this->assertProtobufEquals($snapshotId, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/revertVolumeTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function revertVolumeExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/revertVolumeTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->volumeName('[PROJECT]', '[LOCATION]', '[VOLUME]');
+ $snapshotId = 'snapshotId-168585866';
+ $request = (new RevertVolumeRequest())
+ ->setName($formattedName)
+ ->setSnapshotId($snapshotId);
+ $response = $gapicClient->revertVolume($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/revertVolumeTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function stopReplicationTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/stopReplicationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $stateDetails = 'stateDetails632437908';
+ $healthy = false;
+ $destinationVolume = 'destinationVolume-1177512853';
+ $description = 'description-1724546052';
+ $sourceVolume = 'sourceVolume327497662';
+ $expectedResponse = new Replication();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setHealthy($healthy);
+ $expectedResponse->setDestinationVolume($destinationVolume);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setSourceVolume($sourceVolume);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/stopReplicationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->replicationName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[REPLICATION]');
+ $request = (new StopReplicationRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->stopReplication($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/StopReplication', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/stopReplicationTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function stopReplicationExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/stopReplicationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->replicationName('[PROJECT]', '[LOCATION]', '[VOLUME]', '[REPLICATION]');
+ $request = (new StopReplicationRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->stopReplication($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/stopReplicationTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateActiveDirectoryTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateActiveDirectoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $domain = 'domain-1326197564';
+ $site = 'site3530567';
+ $dns = 'dns99625';
+ $netBiosPrefix = 'netBiosPrefix865554756';
+ $organizationalUnit = 'organizationalUnit-694432635';
+ $aesEncryption = false;
+ $username = 'username-265713450';
+ $password = 'password1216985755';
+ $kdcHostname = 'kdcHostname-863813976';
+ $kdcIp = 'kdcIp-1136252068';
+ $nfsUsersWithLdap = false;
+ $description = 'description-1724546052';
+ $ldapSigning = false;
+ $encryptDcConnections = false;
+ $stateDetails = 'stateDetails632437908';
+ $expectedResponse = new ActiveDirectory();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDomain($domain);
+ $expectedResponse->setSite($site);
+ $expectedResponse->setDns($dns);
+ $expectedResponse->setNetBiosPrefix($netBiosPrefix);
+ $expectedResponse->setOrganizationalUnit($organizationalUnit);
+ $expectedResponse->setAesEncryption($aesEncryption);
+ $expectedResponse->setUsername($username);
+ $expectedResponse->setPassword($password);
+ $expectedResponse->setKdcHostname($kdcHostname);
+ $expectedResponse->setKdcIp($kdcIp);
+ $expectedResponse->setNfsUsersWithLdap($nfsUsersWithLdap);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setLdapSigning($ldapSigning);
+ $expectedResponse->setEncryptDcConnections($encryptDcConnections);
+ $expectedResponse->setStateDetails($stateDetails);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateActiveDirectoryTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $activeDirectory = new ActiveDirectory();
+ $activeDirectoryDomain = 'activeDirectoryDomain1710368171';
+ $activeDirectory->setDomain($activeDirectoryDomain);
+ $activeDirectoryDns = 'activeDirectoryDns1090270626';
+ $activeDirectory->setDns($activeDirectoryDns);
+ $activeDirectoryNetBiosPrefix = 'activeDirectoryNetBiosPrefix-1870358125';
+ $activeDirectory->setNetBiosPrefix($activeDirectoryNetBiosPrefix);
+ $activeDirectoryUsername = 'activeDirectoryUsername1591163901';
+ $activeDirectory->setUsername($activeDirectoryUsername);
+ $activeDirectoryPassword = 'activeDirectoryPassword-1221104190';
+ $activeDirectory->setPassword($activeDirectoryPassword);
+ $request = (new UpdateActiveDirectoryRequest())
+ ->setUpdateMask($updateMask)
+ ->setActiveDirectory($activeDirectory);
+ $response = $gapicClient->updateActiveDirectory($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/UpdateActiveDirectory', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getActiveDirectory();
+ $this->assertProtobufEquals($activeDirectory, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateActiveDirectoryTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateActiveDirectoryExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateActiveDirectoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $updateMask = new FieldMask();
+ $activeDirectory = new ActiveDirectory();
+ $activeDirectoryDomain = 'activeDirectoryDomain1710368171';
+ $activeDirectory->setDomain($activeDirectoryDomain);
+ $activeDirectoryDns = 'activeDirectoryDns1090270626';
+ $activeDirectory->setDns($activeDirectoryDns);
+ $activeDirectoryNetBiosPrefix = 'activeDirectoryNetBiosPrefix-1870358125';
+ $activeDirectory->setNetBiosPrefix($activeDirectoryNetBiosPrefix);
+ $activeDirectoryUsername = 'activeDirectoryUsername1591163901';
+ $activeDirectory->setUsername($activeDirectoryUsername);
+ $activeDirectoryPassword = 'activeDirectoryPassword-1221104190';
+ $activeDirectory->setPassword($activeDirectoryPassword);
+ $request = (new UpdateActiveDirectoryRequest())
+ ->setUpdateMask($updateMask)
+ ->setActiveDirectory($activeDirectory);
+ $response = $gapicClient->updateActiveDirectory($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateActiveDirectoryTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateKmsConfigTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateKmsConfigTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $cryptoKeyName = 'cryptoKeyName-184663511';
+ $stateDetails = 'stateDetails632437908';
+ $description = 'description-1724546052';
+ $instructions = 'instructions757376421';
+ $serviceAccount = 'serviceAccount-1948028253';
+ $expectedResponse = new KmsConfig();
+ $expectedResponse->setName($name);
+ $expectedResponse->setCryptoKeyName($cryptoKeyName);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setInstructions($instructions);
+ $expectedResponse->setServiceAccount($serviceAccount);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateKmsConfigTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $kmsConfig = new KmsConfig();
+ $kmsConfigCryptoKeyName = 'kmsConfigCryptoKeyName2110252630';
+ $kmsConfig->setCryptoKeyName($kmsConfigCryptoKeyName);
+ $request = (new UpdateKmsConfigRequest())
+ ->setUpdateMask($updateMask)
+ ->setKmsConfig($kmsConfig);
+ $response = $gapicClient->updateKmsConfig($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/UpdateKmsConfig', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getKmsConfig();
+ $this->assertProtobufEquals($kmsConfig, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateKmsConfigTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateKmsConfigExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateKmsConfigTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $updateMask = new FieldMask();
+ $kmsConfig = new KmsConfig();
+ $kmsConfigCryptoKeyName = 'kmsConfigCryptoKeyName2110252630';
+ $kmsConfig->setCryptoKeyName($kmsConfigCryptoKeyName);
+ $request = (new UpdateKmsConfigRequest())
+ ->setUpdateMask($updateMask)
+ ->setKmsConfig($kmsConfig);
+ $response = $gapicClient->updateKmsConfig($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateKmsConfigTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateReplicationTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateReplicationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $stateDetails = 'stateDetails632437908';
+ $healthy = false;
+ $destinationVolume = 'destinationVolume-1177512853';
+ $description = 'description-1724546052';
+ $sourceVolume = 'sourceVolume327497662';
+ $expectedResponse = new Replication();
+ $expectedResponse->setName($name);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setHealthy($healthy);
+ $expectedResponse->setDestinationVolume($destinationVolume);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setSourceVolume($sourceVolume);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateReplicationTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $replication = new Replication();
+ $replicationReplicationSchedule = ReplicationSchedule::REPLICATION_SCHEDULE_UNSPECIFIED;
+ $replication->setReplicationSchedule($replicationReplicationSchedule);
+ $replicationDestinationVolumeParameters = new DestinationVolumeParameters();
+ $destinationVolumeParametersStoragePool = $gapicClient->storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+ $replicationDestinationVolumeParameters->setStoragePool($destinationVolumeParametersStoragePool);
+ $replication->setDestinationVolumeParameters($replicationDestinationVolumeParameters);
+ $request = (new UpdateReplicationRequest())
+ ->setUpdateMask($updateMask)
+ ->setReplication($replication);
+ $response = $gapicClient->updateReplication($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/UpdateReplication', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getReplication();
+ $this->assertProtobufEquals($replication, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateReplicationTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateReplicationExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateReplicationTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $updateMask = new FieldMask();
+ $replication = new Replication();
+ $replicationReplicationSchedule = ReplicationSchedule::REPLICATION_SCHEDULE_UNSPECIFIED;
+ $replication->setReplicationSchedule($replicationReplicationSchedule);
+ $replicationDestinationVolumeParameters = new DestinationVolumeParameters();
+ $destinationVolumeParametersStoragePool = $gapicClient->storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+ $replicationDestinationVolumeParameters->setStoragePool($destinationVolumeParametersStoragePool);
+ $replication->setDestinationVolumeParameters($replicationDestinationVolumeParameters);
+ $request = (new UpdateReplicationRequest())
+ ->setUpdateMask($updateMask)
+ ->setReplication($replication);
+ $response = $gapicClient->updateReplication($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateReplicationTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateSnapshotTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateSnapshotTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $stateDetails = 'stateDetails632437908';
+ $description = 'description-1724546052';
+ $usedBytes = -1.91584322E8;
+ $expectedResponse = new Snapshot();
+ $expectedResponse->setName($name);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setUsedBytes($usedBytes);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateSnapshotTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $snapshot = new Snapshot();
+ $request = (new UpdateSnapshotRequest())
+ ->setUpdateMask($updateMask)
+ ->setSnapshot($snapshot);
+ $response = $gapicClient->updateSnapshot($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/UpdateSnapshot', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getSnapshot();
+ $this->assertProtobufEquals($snapshot, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateSnapshotTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateSnapshotExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateSnapshotTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $updateMask = new FieldMask();
+ $snapshot = new Snapshot();
+ $request = (new UpdateSnapshotRequest())
+ ->setUpdateMask($updateMask)
+ ->setSnapshot($snapshot);
+ $response = $gapicClient->updateSnapshot($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateSnapshotTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateStoragePoolTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateStoragePoolTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $capacityGib = 498394811;
+ $volumeCapacityGib = 643777472;
+ $volumeCount = 1362665558;
+ $stateDetails = 'stateDetails632437908';
+ $description = 'description-1724546052';
+ $network = 'network1843485230';
+ $activeDirectory = 'activeDirectory475662452';
+ $kmsConfig = 'kmsConfig917255152';
+ $ldapEnabled = false;
+ $psaRange = 'psaRange1004849276';
+ $globalAccessAllowed = false;
+ $expectedResponse = new StoragePool();
+ $expectedResponse->setName($name);
+ $expectedResponse->setCapacityGib($capacityGib);
+ $expectedResponse->setVolumeCapacityGib($volumeCapacityGib);
+ $expectedResponse->setVolumeCount($volumeCount);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setActiveDirectory($activeDirectory);
+ $expectedResponse->setKmsConfig($kmsConfig);
+ $expectedResponse->setLdapEnabled($ldapEnabled);
+ $expectedResponse->setPsaRange($psaRange);
+ $expectedResponse->setGlobalAccessAllowed($globalAccessAllowed);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateStoragePoolTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $storagePool = new StoragePool();
+ $storagePoolServiceLevel = ServiceLevel::SERVICE_LEVEL_UNSPECIFIED;
+ $storagePool->setServiceLevel($storagePoolServiceLevel);
+ $storagePoolCapacityGib = 1260910865;
+ $storagePool->setCapacityGib($storagePoolCapacityGib);
+ $storagePoolNetwork = $gapicClient->networkName('[PROJECT]', '[NETWORK]');
+ $storagePool->setNetwork($storagePoolNetwork);
+ $request = (new UpdateStoragePoolRequest())
+ ->setUpdateMask($updateMask)
+ ->setStoragePool($storagePool);
+ $response = $gapicClient->updateStoragePool($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/UpdateStoragePool', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getStoragePool();
+ $this->assertProtobufEquals($storagePool, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateStoragePoolTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateStoragePoolExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateStoragePoolTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $updateMask = new FieldMask();
+ $storagePool = new StoragePool();
+ $storagePoolServiceLevel = ServiceLevel::SERVICE_LEVEL_UNSPECIFIED;
+ $storagePool->setServiceLevel($storagePoolServiceLevel);
+ $storagePoolCapacityGib = 1260910865;
+ $storagePool->setCapacityGib($storagePoolCapacityGib);
+ $storagePoolNetwork = $gapicClient->networkName('[PROJECT]', '[NETWORK]');
+ $storagePool->setNetwork($storagePoolNetwork);
+ $request = (new UpdateStoragePoolRequest())
+ ->setUpdateMask($updateMask)
+ ->setStoragePool($storagePool);
+ $response = $gapicClient->updateStoragePool($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateStoragePoolTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateVolumeTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateVolumeTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $stateDetails = 'stateDetails632437908';
+ $shareName = 'shareName-1788152085';
+ $psaRange = 'psaRange1004849276';
+ $storagePool = 'storagePool897344352';
+ $network = 'network1843485230';
+ $capacityGib = 498394811;
+ $unixPermissions = 'unixPermissions1137975373';
+ $description = 'description-1724546052';
+ $snapReserve = -1.42958764E8;
+ $snapshotDirectory = true;
+ $usedGib = 279083970;
+ $kerberosEnabled = false;
+ $ldapEnabled = false;
+ $activeDirectory = 'activeDirectory475662452';
+ $kmsConfig = 'kmsConfig917255152';
+ $hasReplication = false;
+ $expectedResponse = new Volume();
+ $expectedResponse->setName($name);
+ $expectedResponse->setStateDetails($stateDetails);
+ $expectedResponse->setShareName($shareName);
+ $expectedResponse->setPsaRange($psaRange);
+ $expectedResponse->setStoragePool($storagePool);
+ $expectedResponse->setNetwork($network);
+ $expectedResponse->setCapacityGib($capacityGib);
+ $expectedResponse->setUnixPermissions($unixPermissions);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setSnapReserve($snapReserve);
+ $expectedResponse->setSnapshotDirectory($snapshotDirectory);
+ $expectedResponse->setUsedGib($usedGib);
+ $expectedResponse->setKerberosEnabled($kerberosEnabled);
+ $expectedResponse->setLdapEnabled($ldapEnabled);
+ $expectedResponse->setActiveDirectory($activeDirectory);
+ $expectedResponse->setKmsConfig($kmsConfig);
+ $expectedResponse->setHasReplication($hasReplication);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateVolumeTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $updateMask = new FieldMask();
+ $volume = new Volume();
+ $volumeShareName = 'volumeShareName1564593424';
+ $volume->setShareName($volumeShareName);
+ $volumeStoragePool = $gapicClient->storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+ $volume->setStoragePool($volumeStoragePool);
+ $volumeCapacityGib = 1491387092;
+ $volume->setCapacityGib($volumeCapacityGib);
+ $volumeProtocols = [];
+ $volume->setProtocols($volumeProtocols);
+ $request = (new UpdateVolumeRequest())
+ ->setUpdateMask($updateMask)
+ ->setVolume($volume);
+ $response = $gapicClient->updateVolume($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/UpdateVolume', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $actualValue = $actualApiRequestObject->getVolume();
+ $this->assertProtobufEquals($volume, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateVolumeTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateVolumeExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateVolumeTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $updateMask = new FieldMask();
+ $volume = new Volume();
+ $volumeShareName = 'volumeShareName1564593424';
+ $volume->setShareName($volumeShareName);
+ $volumeStoragePool = $gapicClient->storagePoolName('[PROJECT]', '[LOCATION]', '[STORAGE_POOL]');
+ $volume->setStoragePool($volumeStoragePool);
+ $volumeCapacityGib = 1491387092;
+ $volume->setCapacityGib($volumeCapacityGib);
+ $volumeProtocols = [];
+ $volume->setProtocols($volumeProtocols);
+ $request = (new UpdateVolumeRequest())
+ ->setUpdateMask($updateMask)
+ ->setVolume($volume);
+ $response = $gapicClient->updateVolume($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateVolumeTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function verifyKmsConfigTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $healthy = false;
+ $healthError = 'healthError847905381';
+ $instructions = 'instructions757376421';
+ $expectedResponse = new VerifyKmsConfigResponse();
+ $expectedResponse->setHealthy($healthy);
+ $expectedResponse->setHealthError($healthError);
+ $expectedResponse->setInstructions($instructions);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->kmsConfigName('[PROJECT]', '[LOCATION]', '[KMS_CONFIG]');
+ $request = (new VerifyKmsConfigRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->verifyKmsConfig($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/VerifyKmsConfig', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function verifyKmsConfigExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->kmsConfigName('[PROJECT]', '[LOCATION]', '[KMS_CONFIG]');
+ $request = (new VerifyKmsConfigRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->verifyKmsConfig($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getLocationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $locationId = 'locationId552319461';
+ $displayName = 'displayName1615086568';
+ $expectedResponse = new Location();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setLocationId($locationId);
+ $expectedResponse->setDisplayName($displayName);
+ $transport->addResponse($expectedResponse);
+ $request = new GetLocationRequest();
+ $response = $gapicClient->getLocation($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.location.Locations/GetLocation', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getLocationExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new GetLocationRequest();
+ try {
+ $gapicClient->getLocation($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listLocationsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $locationsElement = new Location();
+ $locations = [
+ $locationsElement,
+ ];
+ $expectedResponse = new ListLocationsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setLocations($locations);
+ $transport->addResponse($expectedResponse);
+ $request = new ListLocationsRequest();
+ $response = $gapicClient->listLocations($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getLocations()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.location.Locations/ListLocations', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listLocationsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new ListLocationsRequest();
+ try {
+ $gapicClient->listLocations($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createActiveDirectoryAsyncTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createActiveDirectoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $domain = 'domain-1326197564';
+ $site = 'site3530567';
+ $dns = 'dns99625';
+ $netBiosPrefix = 'netBiosPrefix865554756';
+ $organizationalUnit = 'organizationalUnit-694432635';
+ $aesEncryption = false;
+ $username = 'username-265713450';
+ $password = 'password1216985755';
+ $kdcHostname = 'kdcHostname-863813976';
+ $kdcIp = 'kdcIp-1136252068';
+ $nfsUsersWithLdap = false;
+ $description = 'description-1724546052';
+ $ldapSigning = false;
+ $encryptDcConnections = false;
+ $stateDetails = 'stateDetails632437908';
+ $expectedResponse = new ActiveDirectory();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDomain($domain);
+ $expectedResponse->setSite($site);
+ $expectedResponse->setDns($dns);
+ $expectedResponse->setNetBiosPrefix($netBiosPrefix);
+ $expectedResponse->setOrganizationalUnit($organizationalUnit);
+ $expectedResponse->setAesEncryption($aesEncryption);
+ $expectedResponse->setUsername($username);
+ $expectedResponse->setPassword($password);
+ $expectedResponse->setKdcHostname($kdcHostname);
+ $expectedResponse->setKdcIp($kdcIp);
+ $expectedResponse->setNfsUsersWithLdap($nfsUsersWithLdap);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setLdapSigning($ldapSigning);
+ $expectedResponse->setEncryptDcConnections($encryptDcConnections);
+ $expectedResponse->setStateDetails($stateDetails);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createActiveDirectoryTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $activeDirectory = new ActiveDirectory();
+ $activeDirectoryDomain = 'activeDirectoryDomain1710368171';
+ $activeDirectory->setDomain($activeDirectoryDomain);
+ $activeDirectoryDns = 'activeDirectoryDns1090270626';
+ $activeDirectory->setDns($activeDirectoryDns);
+ $activeDirectoryNetBiosPrefix = 'activeDirectoryNetBiosPrefix-1870358125';
+ $activeDirectory->setNetBiosPrefix($activeDirectoryNetBiosPrefix);
+ $activeDirectoryUsername = 'activeDirectoryUsername1591163901';
+ $activeDirectory->setUsername($activeDirectoryUsername);
+ $activeDirectoryPassword = 'activeDirectoryPassword-1221104190';
+ $activeDirectory->setPassword($activeDirectoryPassword);
+ $activeDirectoryId = 'activeDirectoryId1363092678';
+ $request = (new CreateActiveDirectoryRequest())
+ ->setParent($formattedParent)
+ ->setActiveDirectory($activeDirectory)
+ ->setActiveDirectoryId($activeDirectoryId);
+ $response = $gapicClient->createActiveDirectoryAsync($request)->wait();
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.netapp.v1.NetApp/CreateActiveDirectory', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getActiveDirectory();
+ $this->assertProtobufEquals($activeDirectory, $actualValue);
+ $actualValue = $actualApiRequestObject->getActiveDirectoryId();
+ $this->assertProtobufEquals($activeDirectoryId, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createActiveDirectoryTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+}
diff --git a/composer.json b/composer.json
index 4055d7e88d1..eb1ebe73055 100644
--- a/composer.json
+++ b/composer.json
@@ -164,6 +164,7 @@
"google/cloud-memcache": "1.2.0",
"google/cloud-migrationcenter": "0.2.0",
"google/cloud-monitoring": "1.6.0",
+ "google/cloud-netapp": "0.0.0",
"google/cloud-network-connectivity": "1.2.0",
"google/cloud-network-management": "1.3.0",
"google/cloud-network-security": "0.5.0",
@@ -312,6 +313,7 @@
"GPBMetadata\\Google\\Cloud\\Memcache\\": "Memcache/metadata",
"GPBMetadata\\Google\\Cloud\\Metastore\\": "DataprocMetastore/metadata",
"GPBMetadata\\Google\\Cloud\\Migrationcenter\\": "MigrationCenter/metadata",
+ "GPBMetadata\\Google\\Cloud\\Netapp\\": "NetApp/metadata",
"GPBMetadata\\Google\\Cloud\\Networkconnectivity\\": "NetworkConnectivity/metadata",
"GPBMetadata\\Google\\Cloud\\Networkmanagement\\": "NetworkManagement/metadata",
"GPBMetadata\\Google\\Cloud\\Networksecurity\\": "NetworkSecurity/metadata",
@@ -488,6 +490,7 @@
"Google\\Cloud\\Metastore\\": "DataprocMetastore/src",
"Google\\Cloud\\MigrationCenter\\": "MigrationCenter/src",
"Google\\Cloud\\Monitoring\\": "Monitoring/src",
+ "Google\\Cloud\\NetApp\\": "NetApp/src",
"Google\\Cloud\\NetworkConnectivity\\": "NetworkConnectivity/src",
"Google\\Cloud\\NetworkManagement\\": "NetworkManagement/src",
"Google\\Cloud\\NetworkSecurity\\": "NetworkSecurity/src",