From 796b2482d765d213ab7f9329558c8ea2ca988fe9 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 18 Nov 2024 11:32:37 -0800 Subject: [PATCH] feat(all): auto-regenerate discovery clients (#2876) --- admin/directory/v1/admin-api.json | 4 +- admin/directory/v1/admin-gen.go | 10 +- analyticsadmin/v1beta/analyticsadmin-api.json | 6 +- analyticsadmin/v1beta/analyticsadmin-gen.go | 2 + dialogflow/v2beta1/dialogflow-api.json | 6 +- dialogflow/v2beta1/dialogflow-gen.go | 4 +- displayvideo/v2/displayvideo-api.json | 12 +- displayvideo/v2/displayvideo-gen.go | 27 +- displayvideo/v3/displayvideo-api.json | 12 +- displayvideo/v3/displayvideo-gen.go | 27 +- netapp/v1/netapp-api.json | 484 ++++++- netapp/v1/netapp-gen.go | 1265 +++++++++++++++-- netapp/v1beta1/netapp-api.json | 484 ++++++- netapp/v1beta1/netapp-gen.go | 1265 +++++++++++++++-- networksecurity/v1/networksecurity-api.json | 537 ++++++- networksecurity/v1/networksecurity-gen.go | 1183 ++++++++++++++- .../v1beta1/networksecurity-api.json | 10 +- .../v1beta1/networksecurity-gen.go | 9 +- run/v2/run-api.json | 21 +- run/v2/run-gen.go | 13 + .../v1/servicenetworking-api.json | 9 +- servicenetworking/v1/servicenetworking-gen.go | 5 + .../v1beta/servicenetworking-api.json | 9 +- .../v1beta/servicenetworking-gen.go | 5 + walletobjects/v1/walletobjects-api.json | 6 +- walletobjects/v1/walletobjects-gen.go | 3 + 26 files changed, 5084 insertions(+), 334 deletions(-) diff --git a/admin/directory/v1/admin-api.json b/admin/directory/v1/admin-api.json index 8eb09f396e..ca345ab9be 100644 --- a/admin/directory/v1/admin-api.json +++ b/admin/directory/v1/admin-api.json @@ -4671,7 +4671,7 @@ } } }, - "revision": "20241029", + "revision": "20241113", "rootUrl": "https://admin.googleapis.com/", "schemas": { "Alias": { @@ -7070,7 +7070,7 @@ "properties": { "blockInheritance": { "deprecated": true, - "description": "Determines if a sub-organizational unit can inherit the settings of the parent organization. The default value is `false`, meaning a sub-organizational unit inherits the settings of the nearest parent organizational unit. This field is deprecated. Setting it to `true` is no longer supported and can have _unintended consequences_. For more information about inheritance and users in an organization structure, see the [administration help center](https://support.google.com/a/answer/4352075).", + "description": "This field is deprecated and setting its value has no effect.", "type": "boolean" }, "description": { diff --git a/admin/directory/v1/admin-gen.go b/admin/directory/v1/admin-gen.go index b8211cbe53..fd28a7ef73 100644 --- a/admin/directory/v1/admin-gen.go +++ b/admin/directory/v1/admin-gen.go @@ -3512,14 +3512,8 @@ func (s MobileDevices) MarshalJSON() ([]byte, error) { // Guide (/admin-sdk/directory/v1/guides/manage-org-units.html). The customer's // organizational unit hierarchy is limited to 35 levels of depth. type OrgUnit struct { - // BlockInheritance: Determines if a sub-organizational unit can inherit the - // settings of the parent organization. The default value is `false`, meaning a - // sub-organizational unit inherits the settings of the nearest parent - // organizational unit. This field is deprecated. Setting it to `true` is no - // longer supported and can have _unintended consequences_. For more - // information about inheritance and users in an organization structure, see - // the administration help center - // (https://support.google.com/a/answer/4352075). + // BlockInheritance: This field is deprecated and setting its value has no + // effect. BlockInheritance bool `json:"blockInheritance,omitempty"` // Description: Description of the organizational unit. Description string `json:"description,omitempty"` diff --git a/analyticsadmin/v1beta/analyticsadmin-api.json b/analyticsadmin/v1beta/analyticsadmin-api.json index 32cec0ec36..aa8d75e5be 100644 --- a/analyticsadmin/v1beta/analyticsadmin-api.json +++ b/analyticsadmin/v1beta/analyticsadmin-api.json @@ -1788,7 +1788,7 @@ } } }, - "revision": "20240916", + "revision": "20241113", "rootUrl": "https://analyticsadmin.googleapis.com/", "schemas": { "GoogleAnalyticsAdminV1betaAccessBetweenFilter": { @@ -3494,6 +3494,8 @@ "GOOGLE_SIGNALS_SETTINGS", "CONVERSION_EVENT", "MEASUREMENT_PROTOCOL_SECRET", + "CUSTOM_DIMENSION", + "CUSTOM_METRIC", "DATA_RETENTION_SETTINGS", "DISPLAY_VIDEO_360_ADVERTISER_LINK", "DISPLAY_VIDEO_360_ADVERTISER_LINK_PROPOSAL", @@ -3509,6 +3511,8 @@ "GoogleSignalsSettings resource", "ConversionEvent resource", "MeasurementProtocolSecret resource", + "CustomDimension resource", + "CustomMetric resource", "DataRetentionSettings resource", "DisplayVideo360AdvertiserLink resource", "DisplayVideo360AdvertiserLinkProposal resource", diff --git a/analyticsadmin/v1beta/analyticsadmin-gen.go b/analyticsadmin/v1beta/analyticsadmin-gen.go index 0f9849622d..b43487b5d5 100644 --- a/analyticsadmin/v1beta/analyticsadmin-gen.go +++ b/analyticsadmin/v1beta/analyticsadmin-gen.go @@ -2512,6 +2512,8 @@ type GoogleAnalyticsAdminV1betaSearchChangeHistoryEventsRequest struct { // "GOOGLE_SIGNALS_SETTINGS" - GoogleSignalsSettings resource // "CONVERSION_EVENT" - ConversionEvent resource // "MEASUREMENT_PROTOCOL_SECRET" - MeasurementProtocolSecret resource + // "CUSTOM_DIMENSION" - CustomDimension resource + // "CUSTOM_METRIC" - CustomMetric resource // "DATA_RETENTION_SETTINGS" - DataRetentionSettings resource // "DISPLAY_VIDEO_360_ADVERTISER_LINK" - DisplayVideo360AdvertiserLink // resource diff --git a/dialogflow/v2beta1/dialogflow-api.json b/dialogflow/v2beta1/dialogflow-api.json index 0cf261328f..ace9d36e91 100644 --- a/dialogflow/v2beta1/dialogflow-api.json +++ b/dialogflow/v2beta1/dialogflow-api.json @@ -8239,7 +8239,7 @@ } } }, - "revision": "20241025", + "revision": "20241112", "rootUrl": "https://dialogflow.googleapis.com/", "schemas": { "GoogleCloudDialogflowCxV3AdvancedSettings": { @@ -16992,7 +16992,7 @@ "type": "object" }, "GoogleCloudDialogflowV2beta1FewShotExample": { - "description": "Providing examples in the generator (i.e. building a few-shot generator) helps convey the desired format of the LLM response. NEXT_ID: 10", + "description": "Providing examples in the generator (i.e. building a few-shot generator) helps convey the desired format of the LLM response. NEXT_ID: 11", "id": "GoogleCloudDialogflowV2beta1FewShotExample", "properties": { "conversationContext": { @@ -17285,7 +17285,7 @@ }, "summarizationContext": { "$ref": "GoogleCloudDialogflowV2beta1SummarizationContext", - "description": "Input of prebuilt Summarization feature." + "description": "Input of Summarization feature." }, "triggerEvent": { "description": "Optional. The trigger event of the generator. It defines when the generator is triggered in a conversation.", diff --git a/dialogflow/v2beta1/dialogflow-gen.go b/dialogflow/v2beta1/dialogflow-gen.go index a104b607f8..32276c88d1 100644 --- a/dialogflow/v2beta1/dialogflow-gen.go +++ b/dialogflow/v2beta1/dialogflow-gen.go @@ -13011,7 +13011,7 @@ func (s *GoogleCloudDialogflowV2beta1FaqAnswer) UnmarshalJSON(data []byte) error // GoogleCloudDialogflowV2beta1FewShotExample: Providing examples in the // generator (i.e. building a few-shot generator) helps convey the desired -// format of the LLM response. NEXT_ID: 10 +// format of the LLM response. NEXT_ID: 11 type GoogleCloudDialogflowV2beta1FewShotExample struct { // ConversationContext: Optional. Conversation transcripts. ConversationContext *GoogleCloudDialogflowV2beta1ConversationContext `json:"conversationContext,omitempty"` @@ -13437,7 +13437,7 @@ type GoogleCloudDialogflowV2beta1Generator struct { // Name: Output only. Identifier. The resource name of the generator. Format: // `projects//locations//generators/` Name string `json:"name,omitempty"` - // SummarizationContext: Input of prebuilt Summarization feature. + // SummarizationContext: Input of Summarization feature. SummarizationContext *GoogleCloudDialogflowV2beta1SummarizationContext `json:"summarizationContext,omitempty"` // TriggerEvent: Optional. The trigger event of the generator. It defines when // the generator is triggered in a conversation. diff --git a/displayvideo/v2/displayvideo-api.json b/displayvideo/v2/displayvideo-api.json index 91a59e1610..1a0b489547 100644 --- a/displayvideo/v2/displayvideo-api.json +++ b/displayvideo/v2/displayvideo-api.json @@ -9267,7 +9267,7 @@ } } }, - "revision": "20241031", + "revision": "20241114", "rootUrl": "https://displayvideo.googleapis.com/", "schemas": { "ActivateManualTriggerRequest": { @@ -12367,7 +12367,7 @@ "SDF version 6", "SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", "SDF version 7.1. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", - "SDF version 8. **This SDF version is in beta. It is only available to a subset of users.**" + "SDF version 8. Read the [v8 migration guide](/display-video/api/structured-data-file/v8-migration-guide) before migrating to this version." ], "type": "string" } @@ -16208,7 +16208,7 @@ }, "pacing": { "$ref": "Pacing", - "description": "Required. The budget spending speed setting of the insertion order. *Warning*: Starting on **November 5, 2024**, pacing_type `PACING_TYPE_ASAP` will no longer be compatible with pacing_period `PACING_PERIOD_FLIGHT`. [Read more about this announced change](/display-video/api/deprecations#features.io_asap)." + "description": "Required. The budget spending speed setting of the insertion order. pacing_type `PACING_TYPE_ASAP` is not compatible with pacing_period `PACING_PERIOD_FLIGHT`." }, "partnerCosts": { "description": "The partner costs associated with the insertion order. If absent or empty in CreateInsertionOrder method, the newly created insertion order will inherit partner costs from the partner settings.", @@ -18862,7 +18862,7 @@ "type": "string" }, "pacingType": { - "description": "Required. The type of pacing that defines how the budget amount will be spent across the pacing_period. *Warning*: Starting on **November 5, 2024**, `PACING_TYPE_ASAP` will no longer be compatible with pacing_period `PACING_PERIOD_FLIGHT` for insertion orders. [Read more about this announced change](/display-video/api/deprecations#features.io_asap).", + "description": "Required. The type of pacing that defines how the budget amount will be spent across the pacing_period. `PACING_TYPE_ASAP` is not compatible with pacing_period `PACING_PERIOD_FLIGHT` for insertion orders.", "enum": [ "PACING_TYPE_UNSPECIFIED", "PACING_TYPE_AHEAD", @@ -19899,7 +19899,7 @@ "SDF version 6", "SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", "SDF version 7.1. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", - "SDF version 8. **This SDF version is in beta. It is only available to a subset of users.**" + "SDF version 8. Read the [v8 migration guide](/display-video/api/structured-data-file/v8-migration-guide) before migrating to this version." ], "type": "string" } @@ -19982,7 +19982,7 @@ "SDF version 6", "SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", "SDF version 7.1. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", - "SDF version 8. **This SDF version is in beta. It is only available to a subset of users.**" + "SDF version 8. Read the [v8 migration guide](/display-video/api/structured-data-file/v8-migration-guide) before migrating to this version." ], "type": "string" } diff --git a/displayvideo/v2/displayvideo-gen.go b/displayvideo/v2/displayvideo-gen.go index efa0e5f62a..9ec44d3bd8 100644 --- a/displayvideo/v2/displayvideo-gen.go +++ b/displayvideo/v2/displayvideo-gen.go @@ -4796,8 +4796,9 @@ type CreateSdfDownloadTaskRequest struct { // "SDF_VERSION_7_1" - SDF version 7.1. Read the [v7 migration // guide](/display-video/api/structured-data-file/v7-migration-guide) before // migrating to this version. - // "SDF_VERSION_8" - SDF version 8. **This SDF version is in beta. It is only - // available to a subset of users.** + // "SDF_VERSION_8" - SDF version 8. Read the [v8 migration + // guide](/display-video/api/structured-data-file/v8-migration-guide) before + // migrating to this version. Version string `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "AdvertiserId") to // unconditionally include in API requests. By default, fields with empty or @@ -8599,10 +8600,8 @@ type InsertionOrder struct { // Name: Output only. The resource name of the insertion order. Name string `json:"name,omitempty"` // Pacing: Required. The budget spending speed setting of the insertion order. - // *Warning*: Starting on **November 5, 2024**, pacing_type `PACING_TYPE_ASAP` - // will no longer be compatible with pacing_period `PACING_PERIOD_FLIGHT`. Read - // more about this announced change - // (/display-video/api/deprecations#features.io_asap). + // pacing_type `PACING_TYPE_ASAP` is not compatible with pacing_period + // `PACING_PERIOD_FLIGHT`. Pacing *Pacing `json:"pacing,omitempty"` // PartnerCosts: The partner costs associated with the insertion order. If // absent or empty in CreateInsertionOrder method, the newly created insertion @@ -11915,10 +11914,8 @@ type Pacing struct { // flight duration. PacingPeriod string `json:"pacingPeriod,omitempty"` // PacingType: Required. The type of pacing that defines how the budget amount - // will be spent across the pacing_period. *Warning*: Starting on **November 5, - // 2024**, `PACING_TYPE_ASAP` will no longer be compatible with pacing_period - // `PACING_PERIOD_FLIGHT` for insertion orders. Read more about this announced - // change (/display-video/api/deprecations#features.io_asap). + // will be spent across the pacing_period. `PACING_TYPE_ASAP` is not compatible + // with pacing_period `PACING_PERIOD_FLIGHT` for insertion orders. // // Possible values: // "PACING_TYPE_UNSPECIFIED" - Pacing mode value is not specified or is @@ -13213,8 +13210,9 @@ type SdfConfig struct { // "SDF_VERSION_7_1" - SDF version 7.1. Read the [v7 migration // guide](/display-video/api/structured-data-file/v7-migration-guide) before // migrating to this version. - // "SDF_VERSION_8" - SDF version 8. **This SDF version is in beta. It is only - // available to a subset of users.** + // "SDF_VERSION_8" - SDF version 8. Read the [v8 migration + // guide](/display-video/api/structured-data-file/v8-migration-guide) before + // migrating to this version. Version string `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "AdminEmail") to // unconditionally include in API requests. By default, fields with empty or @@ -13290,8 +13288,9 @@ type SdfDownloadTaskMetadata struct { // "SDF_VERSION_7_1" - SDF version 7.1. Read the [v7 migration // guide](/display-video/api/structured-data-file/v7-migration-guide) before // migrating to this version. - // "SDF_VERSION_8" - SDF version 8. **This SDF version is in beta. It is only - // available to a subset of users.** + // "SDF_VERSION_8" - SDF version 8. Read the [v8 migration + // guide](/display-video/api/structured-data-file/v8-migration-guide) before + // migrating to this version. Version string `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "CreateTime") to // unconditionally include in API requests. By default, fields with empty or diff --git a/displayvideo/v3/displayvideo-api.json b/displayvideo/v3/displayvideo-api.json index 63ff9d8bec..a0282f2778 100644 --- a/displayvideo/v3/displayvideo-api.json +++ b/displayvideo/v3/displayvideo-api.json @@ -9222,7 +9222,7 @@ } } }, - "revision": "20241031", + "revision": "20241114", "rootUrl": "https://displayvideo.googleapis.com/", "schemas": { "ActiveViewVideoViewabilityMetricConfig": { @@ -13215,7 +13215,7 @@ "SDF version 6", "SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", "SDF version 7.1. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", - "SDF version 8. **This SDF version is in beta. It is only available to a subset of users.**" + "SDF version 8. Read the [v8 migration guide](/display-video/api/structured-data-file/v8-migration-guide) before migrating to this version." ], "type": "string" } @@ -17215,7 +17215,7 @@ }, "pacing": { "$ref": "Pacing", - "description": "Required. The budget spending speed setting of the insertion order. *Warning*: Starting on **November 5, 2024**, pacing_type `PACING_TYPE_ASAP` will no longer be compatible with pacing_period `PACING_PERIOD_FLIGHT`. [Read more about this announced change](/display-video/api/deprecations#features.io_asap)." + "description": "Required. The budget spending speed setting of the insertion order. pacing_type `PACING_TYPE_ASAP` is not compatible with pacing_period `PACING_PERIOD_FLIGHT`." }, "partnerCosts": { "description": "The partner costs associated with the insertion order. If absent or empty in CreateInsertionOrder method, the newly created insertion order will inherit partner costs from the partner settings.", @@ -19886,7 +19886,7 @@ "type": "string" }, "pacingType": { - "description": "Required. The type of pacing that defines how the budget amount will be spent across the pacing_period. *Warning*: Starting on **November 5, 2024**, `PACING_TYPE_ASAP` will no longer be compatible with pacing_period `PACING_PERIOD_FLIGHT` for insertion orders. [Read more about this announced change](/display-video/api/deprecations#features.io_asap).", + "description": "Required. The type of pacing that defines how the budget amount will be spent across the pacing_period. `PACING_TYPE_ASAP` is not compatible with pacing_period `PACING_PERIOD_FLIGHT` for insertion orders.", "enum": [ "PACING_TYPE_UNSPECIFIED", "PACING_TYPE_AHEAD", @@ -20943,7 +20943,7 @@ "SDF version 6", "SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", "SDF version 7.1. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", - "SDF version 8. **This SDF version is in beta. It is only available to a subset of users.**" + "SDF version 8. Read the [v8 migration guide](/display-video/api/structured-data-file/v8-migration-guide) before migrating to this version." ], "type": "string" } @@ -21026,7 +21026,7 @@ "SDF version 6", "SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", "SDF version 7.1. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version.", - "SDF version 8. **This SDF version is in beta. It is only available to a subset of users.**" + "SDF version 8. Read the [v8 migration guide](/display-video/api/structured-data-file/v8-migration-guide) before migrating to this version." ], "type": "string" } diff --git a/displayvideo/v3/displayvideo-gen.go b/displayvideo/v3/displayvideo-gen.go index 092ffda221..db1141f346 100644 --- a/displayvideo/v3/displayvideo-gen.go +++ b/displayvideo/v3/displayvideo-gen.go @@ -5602,8 +5602,9 @@ type CreateSdfDownloadTaskRequest struct { // "SDF_VERSION_7_1" - SDF version 7.1. Read the [v7 migration // guide](/display-video/api/structured-data-file/v7-migration-guide) before // migrating to this version. - // "SDF_VERSION_8" - SDF version 8. **This SDF version is in beta. It is only - // available to a subset of users.** + // "SDF_VERSION_8" - SDF version 8. Read the [v8 migration + // guide](/display-video/api/structured-data-file/v8-migration-guide) before + // migrating to this version. Version string `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "AdvertiserId") to // unconditionally include in API requests. By default, fields with empty or @@ -9583,10 +9584,8 @@ type InsertionOrder struct { // be used. OptimizationObjective string `json:"optimizationObjective,omitempty"` // Pacing: Required. The budget spending speed setting of the insertion order. - // *Warning*: Starting on **November 5, 2024**, pacing_type `PACING_TYPE_ASAP` - // will no longer be compatible with pacing_period `PACING_PERIOD_FLIGHT`. Read - // more about this announced change - // (/display-video/api/deprecations#features.io_asap). + // pacing_type `PACING_TYPE_ASAP` is not compatible with pacing_period + // `PACING_PERIOD_FLIGHT`. Pacing *Pacing `json:"pacing,omitempty"` // PartnerCosts: The partner costs associated with the insertion order. If // absent or empty in CreateInsertionOrder method, the newly created insertion @@ -12916,10 +12915,8 @@ type Pacing struct { // flight duration. PacingPeriod string `json:"pacingPeriod,omitempty"` // PacingType: Required. The type of pacing that defines how the budget amount - // will be spent across the pacing_period. *Warning*: Starting on **November 5, - // 2024**, `PACING_TYPE_ASAP` will no longer be compatible with pacing_period - // `PACING_PERIOD_FLIGHT` for insertion orders. Read more about this announced - // change (/display-video/api/deprecations#features.io_asap). + // will be spent across the pacing_period. `PACING_TYPE_ASAP` is not compatible + // with pacing_period `PACING_PERIOD_FLIGHT` for insertion orders. // // Possible values: // "PACING_TYPE_UNSPECIFIED" - Pacing mode value is not specified or is @@ -14240,8 +14237,9 @@ type SdfConfig struct { // "SDF_VERSION_7_1" - SDF version 7.1. Read the [v7 migration // guide](/display-video/api/structured-data-file/v7-migration-guide) before // migrating to this version. - // "SDF_VERSION_8" - SDF version 8. **This SDF version is in beta. It is only - // available to a subset of users.** + // "SDF_VERSION_8" - SDF version 8. Read the [v8 migration + // guide](/display-video/api/structured-data-file/v8-migration-guide) before + // migrating to this version. Version string `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "AdminEmail") to // unconditionally include in API requests. By default, fields with empty or @@ -14317,8 +14315,9 @@ type SdfDownloadTaskMetadata struct { // "SDF_VERSION_7_1" - SDF version 7.1. Read the [v7 migration // guide](/display-video/api/structured-data-file/v7-migration-guide) before // migrating to this version. - // "SDF_VERSION_8" - SDF version 8. **This SDF version is in beta. It is only - // available to a subset of users.** + // "SDF_VERSION_8" - SDF version 8. Read the [v8 migration + // guide](/display-video/api/structured-data-file/v8-migration-guide) before + // migrating to this version. Version string `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "CreateTime") to // unconditionally include in API requests. By default, fields with empty or diff --git a/netapp/v1/netapp-api.json b/netapp/v1/netapp-api.json index 85d6a116d8..912d4081d0 100644 --- a/netapp/v1/netapp-api.json +++ b/netapp/v1/netapp-api.json @@ -1588,6 +1588,173 @@ } }, "resources": { + "quotaRules": { + "methods": { + "create": { + "description": "Creates a new quota rule.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/quotaRules", + "httpMethod": "POST", + "id": "netapp.projects.locations.volumes.quotaRules.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Parent value for CreateQuotaRuleRequest", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", + "required": true, + "type": "string" + }, + "quotaRuleId": { + "description": "Required. ID of the quota rule to create. Must be unique within the parent resource. Must contain only letters, numbers, underscore and hyphen, with the first character a letter or underscore, the last a letter or underscore or a number, and a 63 character maximum.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/quotaRules", + "request": { + "$ref": "QuotaRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a quota rule.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/quotaRules/{quotaRulesId}", + "httpMethod": "DELETE", + "id": "netapp.projects.locations.volumes.quotaRules.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the quota rule.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/quotaRules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns details of the specified quota rule.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/quotaRules/{quotaRulesId}", + "httpMethod": "GET", + "id": "netapp.projects.locations.volumes.quotaRules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the quota rule", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/quotaRules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "QuotaRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns list of all quota rules in a location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/quotaRules", + "httpMethod": "GET", + "id": "netapp.projects.locations.volumes.quotaRules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Hint for how to order the results", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results the server should return.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent value for ListQuotaRulesRequest", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/quotaRules", + "response": { + "$ref": "ListQuotaRulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a quota rule.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/quotaRules/{quotaRulesId}", + "httpMethod": "PATCH", + "id": "netapp.projects.locations.volumes.quotaRules.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Identifier. The resource name of the active directory. Format: `projects/{project_number}/locations/{location_id}/quotaRules/{quota_rule_id}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/quotaRules/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the Quota Rule 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.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "QuotaRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "replications": { "methods": { "create": { @@ -1648,6 +1815,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "establishPeering": { + "description": "Establish replication peering.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}:establishPeering", + "httpMethod": "POST", + "id": "netapp.projects.locations.volumes.replications.establishPeering", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the replication, in the format of projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/replications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:establishPeering", + "request": { + "$ref": "EstablishPeeringRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Describe a replication for a volume.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}", @@ -1836,6 +2031,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "sync": { + "description": "Syncs the replication. This will invoke one time volume data transfer from source to destination.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}:sync", + "httpMethod": "POST", + "id": "netapp.projects.locations.volumes.replications.sync", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the replication, in the format of projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/replications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:sync", + "request": { + "$ref": "SyncReplicationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -2013,7 +2236,7 @@ } } }, - "revision": "20241021", + "revision": "20241106", "rootUrl": "https://netapp.googleapis.com/", "schemas": { "ActiveDirectory": { @@ -2441,6 +2664,32 @@ "properties": {}, "type": "object" }, + "EstablishPeeringRequest": { + "description": "EstablishPeeringRequest establishes cluster and svm peerings between the source and the destination replications.", + "id": "EstablishPeeringRequest", + "properties": { + "peerClusterName": { + "description": "Required. Name of the user's local source cluster to be peered with the destination cluster.", + "type": "string" + }, + "peerIpAddresses": { + "description": "Optional. List of IPv4 ip addresses to be used for peering.", + "items": { + "type": "string" + }, + "type": "array" + }, + "peerSvmName": { + "description": "Required. Name of the user's local source vserver svm to be peered with the destination vserver svm.", + "type": "string" + }, + "peerVolumeName": { + "description": "Required. Name of the user's local source volume to be peered with the destination volume.", + "type": "string" + } + }, + "type": "object" + }, "ExportPolicy": { "description": "Defines the export policy for the volume.", "id": "ExportPolicy", @@ -2478,6 +2727,75 @@ }, "type": "object" }, + "HybridPeeringDetails": { + "description": "HybridPeeringDetails contains details about the hybrid peering.", + "id": "HybridPeeringDetails", + "properties": { + "command": { + "description": "Optional. Copy-paste-able commands to be used on user's ONTAP to accept peering requests.", + "type": "string" + }, + "commandExpiryTime": { + "description": "Optional. Expiration time for the peering command to be executed on user's ONTAP.", + "format": "google-datetime", + "type": "string" + }, + "passphrase": { + "description": "Optional. Temporary passphrase generated to accept cluster peering command.", + "type": "string" + }, + "subnetIp": { + "description": "Optional. IP address of the subnet.", + "type": "string" + } + }, + "type": "object" + }, + "HybridReplicationParameters": { + "description": "The Hybrid Replication parameters for the volume.", + "id": "HybridReplicationParameters", + "properties": { + "clusterLocation": { + "description": "Optional. Name of source cluster location associated with the Hybrid replication. This is a free-form field for the display purpose only.", + "type": "string" + }, + "description": { + "description": "Optional. Description of the replication.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels to be added to the replication as the key value pairs.", + "type": "object" + }, + "peerClusterName": { + "description": "Required. Name of the user's local source cluster to be peered with the destination cluster.", + "type": "string" + }, + "peerIpAddresses": { + "description": "Required. List of node ip addresses to be peered with.", + "items": { + "type": "string" + }, + "type": "array" + }, + "peerSvmName": { + "description": "Required. Name of the user's local source vserver svm to be peered with the destination vserver svm.", + "type": "string" + }, + "peerVolumeName": { + "description": "Required. Name of the user's local source volume to be peered with the destination volume.", + "type": "string" + }, + "replication": { + "description": "Required. Desired name for the replication of this volume.", + "type": "string" + } + }, + "type": "object" + }, "KmsConfig": { "description": "KmsConfig is the customer managed encryption key(CMEK) configuration.", "id": "KmsConfig", @@ -2719,6 +3037,31 @@ }, "type": "object" }, + "ListQuotaRulesResponse": { + "description": "ListQuotaRulesResponse is the response to a ListQuotaRulesRequest.", + "id": "ListQuotaRulesResponse", + "properties": { + "nextPageToken": { + "description": "A token identifying a page of results the server should return.", + "type": "string" + }, + "quotaRules": { + "description": "List of quota rules", + "items": { + "$ref": "QuotaRule" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListReplicationsResponse": { "description": "ListReplicationsResponse is the result of ListReplicationsRequest.", "id": "ListReplicationsResponse", @@ -3022,10 +3365,95 @@ }, "type": "object" }, + "QuotaRule": { + "description": "QuotaRule specifies the maximum disk space a user or group can use within a volume. They can be used for creating default and individual quota rules.", + "id": "QuotaRule", + "properties": { + "createTime": { + "description": "Output only. Create time of the quota rule", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description of the quota rule", + "type": "string" + }, + "diskLimitMib": { + "description": "Required. The maximum allowed disk space in MiB.", + "format": "int32", + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels of the quota rule", + "type": "object" + }, + "name": { + "description": "Identifier. The resource name of the active directory. Format: `projects/{project_number}/locations/{location_id}/quotaRules/{quota_rule_id}`.", + "type": "string" + }, + "state": { + "description": "Output only. State of the quota rule", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "UPDATING", + "DELETING", + "READY", + "ERROR" + ], + "enumDescriptions": [ + "Unspecified state for quota rule", + "Quota rule is creating", + "Quota rule is updating", + "Quota rule is deleting", + "Quota rule is ready", + "Quota rule is in error state." + ], + "readOnly": true, + "type": "string" + }, + "stateDetails": { + "description": "Output only. State details of the quota rule", + "readOnly": true, + "type": "string" + }, + "target": { + "description": "Optional. The quota rule applies to the specified user or group, identified by a Unix UID/GID, Windows SID, or null for default.", + "type": "string" + }, + "type": { + "description": "Required. The type of quota rule.", + "enum": [ + "TYPE_UNSPECIFIED", + "INDIVIDUAL_USER_QUOTA", + "INDIVIDUAL_GROUP_QUOTA", + "DEFAULT_USER_QUOTA", + "DEFAULT_GROUP_QUOTA" + ], + "enumDescriptions": [ + "Unspecified type for quota rule", + "Individual user quota rule", + "Individual group quota rule", + "Default user quota rule", + "Default group quota rule" + ], + "type": "string" + } + }, + "type": "object" + }, "Replication": { "description": "Replication is a nested resource under Volume, that describes a cross-region replication relationship between 2 volumes in different regions.", "id": "Replication", "properties": { + "clusterLocation": { + "description": "Optional. Location of the user cluster.", + "type": "string" + }, "createTime": { "description": "Output only. Replication create time.", "format": "google-datetime", @@ -3050,6 +3478,26 @@ "readOnly": true, "type": "boolean" }, + "hybridPeeringDetails": { + "$ref": "HybridPeeringDetails", + "description": "Output only. Hybrid peering details.", + "readOnly": true + }, + "hybridReplicationType": { + "description": "Output only. Type of the hybrid replication.", + "enum": [ + "HYBRID_REPLICATION_TYPE_UNSPECIFIED", + "MIGRATION", + "CONTINUOUS_REPLICATION" + ], + "enumDescriptions": [ + "Unspecified hybrid replication type.", + "Hybrid replication type for migration.", + "Hybrid replication type for continuous replication." + ], + "readOnly": true, + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -3064,14 +3512,18 @@ "PREPARING", "MIRRORED", "STOPPED", - "TRANSFERRING" + "TRANSFERRING", + "BASELINE_TRANSFERRING", + "ABORTED" ], "enumDescriptions": [ "Unspecified MirrorState", "Destination volume is being prepared.", "Destination volume has been initialized and is ready to receive replication transfers.", "Destination volume is not receiving replication transfers.", - "Incremental replication is in progress." + "Incremental replication is in progress.", + "Baseline replication is in progress.", + "Replication is aborted." ], "readOnly": true, "type": "string" @@ -3124,7 +3576,9 @@ "READY", "UPDATING", "DELETING", - "ERROR" + "ERROR", + "PENDING_CLUSTER_PEERING", + "PENDING_SVM_PEERING" ], "enumDescriptions": [ "Unspecified replication State", @@ -3132,7 +3586,9 @@ "Replication is ready.", "Replication is updating.", "Replication is deleting.", - "Replication is in error state." + "Replication is in error state.", + "Replication is waiting for cluster peering to be established.", + "Replication is waiting for SVM peering to be established." ], "readOnly": true, "type": "string" @@ -3529,6 +3985,12 @@ "properties": {}, "type": "object" }, + "SyncReplicationRequest": { + "description": "SyncReplicationRequest syncs the replication from source to destination.", + "id": "SyncReplicationRequest", + "properties": {}, + "type": "object" + }, "TieringPolicy": { "description": "Defines tiering policy for the volume.", "id": "TieringPolicy", @@ -3687,6 +4149,10 @@ "readOnly": true, "type": "boolean" }, + "hybridReplicationParameters": { + "$ref": "HybridReplicationParameters", + "description": "Optional. The Hybrid Replication parameters for the volume." + }, "kerberosEnabled": { "description": "Optional. Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).", "type": "boolean" @@ -3872,7 +4338,9 @@ "UPDATING", "RESTORING", "DISABLED", - "ERROR" + "ERROR", + "PREPARING", + "READ_ONLY" ], "enumDescriptions": [ "Unspecified Volume State", @@ -3882,7 +4350,9 @@ "Volume State is Updating", "Volume State is Restoring", "Volume State is Disabled", - "Volume State is Error" + "Volume State is Error", + "Volume State is Preparing. Note that this is different from CREATING where CREATING means the volume is being created, while PREPARING means the volume is created and now being prepared for the replication.", + "Volume State is Read Only" ], "readOnly": true, "type": "string" diff --git a/netapp/v1/netapp-gen.go b/netapp/v1/netapp-gen.go index a8832df259..11aa52af2e 100644 --- a/netapp/v1/netapp-gen.go +++ b/netapp/v1/netapp-gen.go @@ -264,6 +264,7 @@ type ProjectsLocationsStoragePoolsService struct { func NewProjectsLocationsVolumesService(s *Service) *ProjectsLocationsVolumesService { rs := &ProjectsLocationsVolumesService{s: s} + rs.QuotaRules = NewProjectsLocationsVolumesQuotaRulesService(s) rs.Replications = NewProjectsLocationsVolumesReplicationsService(s) rs.Snapshots = NewProjectsLocationsVolumesSnapshotsService(s) return rs @@ -272,11 +273,22 @@ func NewProjectsLocationsVolumesService(s *Service) *ProjectsLocationsVolumesSer type ProjectsLocationsVolumesService struct { s *Service + QuotaRules *ProjectsLocationsVolumesQuotaRulesService + Replications *ProjectsLocationsVolumesReplicationsService Snapshots *ProjectsLocationsVolumesSnapshotsService } +func NewProjectsLocationsVolumesQuotaRulesService(s *Service) *ProjectsLocationsVolumesQuotaRulesService { + rs := &ProjectsLocationsVolumesQuotaRulesService{s: s} + return rs +} + +type ProjectsLocationsVolumesQuotaRulesService struct { + s *Service +} + func NewProjectsLocationsVolumesReplicationsService(s *Service) *ProjectsLocationsVolumesReplicationsService { rs := &ProjectsLocationsVolumesReplicationsService{s: s} return rs @@ -681,6 +693,38 @@ func (s DestinationVolumeParameters) MarshalJSON() ([]byte, error) { type EncryptVolumesRequest struct { } +// EstablishPeeringRequest: EstablishPeeringRequest establishes cluster and svm +// peerings between the source and the destination replications. +type EstablishPeeringRequest struct { + // PeerClusterName: Required. Name of the user's local source cluster to be + // peered with the destination cluster. + PeerClusterName string `json:"peerClusterName,omitempty"` + // PeerIpAddresses: Optional. List of IPv4 ip addresses to be used for peering. + PeerIpAddresses []string `json:"peerIpAddresses,omitempty"` + // PeerSvmName: Required. Name of the user's local source vserver svm to be + // peered with the destination vserver svm. + PeerSvmName string `json:"peerSvmName,omitempty"` + // PeerVolumeName: Required. Name of the user's local source volume to be + // peered with the destination volume. + PeerVolumeName string `json:"peerVolumeName,omitempty"` + // ForceSendFields is a list of field names (e.g. "PeerClusterName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "PeerClusterName") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s EstablishPeeringRequest) MarshalJSON() ([]byte, error) { + type NoMethod EstablishPeeringRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + // ExportPolicy: Defines the export policy for the volume. type ExportPolicy struct { // Rules: Required. List of export policy rules @@ -755,6 +799,81 @@ func (s *HourlySchedule) UnmarshalJSON(data []byte) error { return nil } +// HybridPeeringDetails: HybridPeeringDetails contains details about the hybrid +// peering. +type HybridPeeringDetails struct { + // Command: Optional. Copy-paste-able commands to be used on user's ONTAP to + // accept peering requests. + Command string `json:"command,omitempty"` + // CommandExpiryTime: Optional. Expiration time for the peering command to be + // executed on user's ONTAP. + CommandExpiryTime string `json:"commandExpiryTime,omitempty"` + // Passphrase: Optional. Temporary passphrase generated to accept cluster + // peering command. + Passphrase string `json:"passphrase,omitempty"` + // SubnetIp: Optional. IP address of the subnet. + SubnetIp string `json:"subnetIp,omitempty"` + // ForceSendFields is a list of field names (e.g. "Command") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Command") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HybridPeeringDetails) MarshalJSON() ([]byte, error) { + type NoMethod HybridPeeringDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// HybridReplicationParameters: The Hybrid Replication parameters for the +// volume. +type HybridReplicationParameters struct { + // ClusterLocation: Optional. Name of source cluster location associated with + // the Hybrid replication. This is a free-form field for the display purpose + // only. + ClusterLocation string `json:"clusterLocation,omitempty"` + // Description: Optional. Description of the replication. + Description string `json:"description,omitempty"` + // Labels: Optional. Labels to be added to the replication as the key value + // pairs. + Labels map[string]string `json:"labels,omitempty"` + // PeerClusterName: Required. Name of the user's local source cluster to be + // peered with the destination cluster. + PeerClusterName string `json:"peerClusterName,omitempty"` + // PeerIpAddresses: Required. List of node ip addresses to be peered with. + PeerIpAddresses []string `json:"peerIpAddresses,omitempty"` + // PeerSvmName: Required. Name of the user's local source vserver svm to be + // peered with the destination vserver svm. + PeerSvmName string `json:"peerSvmName,omitempty"` + // PeerVolumeName: Required. Name of the user's local source volume to be + // peered with the destination volume. + PeerVolumeName string `json:"peerVolumeName,omitempty"` + // Replication: Required. Desired name for the replication of this volume. + Replication string `json:"replication,omitempty"` + // ForceSendFields is a list of field names (e.g. "ClusterLocation") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ClusterLocation") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HybridReplicationParameters) MarshalJSON() ([]byte, error) { + type NoMethod HybridReplicationParameters + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + // KmsConfig: KmsConfig is the customer managed encryption key(CMEK) // configuration. type KmsConfig struct { @@ -1030,6 +1149,37 @@ func (s ListOperationsResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } +// ListQuotaRulesResponse: ListQuotaRulesResponse is the response to a +// ListQuotaRulesRequest. +type ListQuotaRulesResponse struct { + // NextPageToken: A token identifying a page of results the server should + // return. + NextPageToken string `json:"nextPageToken,omitempty"` + // QuotaRules: List of quota rules + QuotaRules []*QuotaRule `json:"quotaRules,omitempty"` + // Unreachable: Locations that could not be reached. + Unreachable []string `json:"unreachable,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "NextPageToken") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NextPageToken") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ListQuotaRulesResponse) MarshalJSON() ([]byte, error) { + type NoMethod ListQuotaRulesResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + // ListReplicationsResponse: ListReplicationsResponse is the result of // ListReplicationsRequest. type ListReplicationsResponse struct { @@ -1390,10 +1540,73 @@ func (s OperationMetadata) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } +// QuotaRule: QuotaRule specifies the maximum disk space a user or group can +// use within a volume. They can be used for creating default and individual +// quota rules. +type QuotaRule struct { + // CreateTime: Output only. Create time of the quota rule + CreateTime string `json:"createTime,omitempty"` + // Description: Optional. Description of the quota rule + Description string `json:"description,omitempty"` + // DiskLimitMib: Required. The maximum allowed disk space in MiB. + DiskLimitMib int64 `json:"diskLimitMib,omitempty"` + // Labels: Optional. Labels of the quota rule + Labels map[string]string `json:"labels,omitempty"` + // Name: Identifier. The resource name of the active directory. Format: + // `projects/{project_number}/locations/{location_id}/quotaRules/{quota_rule_id} + // `. + Name string `json:"name,omitempty"` + // State: Output only. State of the quota rule + // + // Possible values: + // "STATE_UNSPECIFIED" - Unspecified state for quota rule + // "CREATING" - Quota rule is creating + // "UPDATING" - Quota rule is updating + // "DELETING" - Quota rule is deleting + // "READY" - Quota rule is ready + // "ERROR" - Quota rule is in error state. + State string `json:"state,omitempty"` + // StateDetails: Output only. State details of the quota rule + StateDetails string `json:"stateDetails,omitempty"` + // Target: Optional. The quota rule applies to the specified user or group, + // identified by a Unix UID/GID, Windows SID, or null for default. + Target string `json:"target,omitempty"` + // Type: Required. The type of quota rule. + // + // Possible values: + // "TYPE_UNSPECIFIED" - Unspecified type for quota rule + // "INDIVIDUAL_USER_QUOTA" - Individual user quota rule + // "INDIVIDUAL_GROUP_QUOTA" - Individual group quota rule + // "DEFAULT_USER_QUOTA" - Default user quota rule + // "DEFAULT_GROUP_QUOTA" - Default group quota rule + Type string `json:"type,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreateTime") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CreateTime") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s QuotaRule) MarshalJSON() ([]byte, error) { + type NoMethod QuotaRule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + // Replication: Replication is a nested resource under Volume, that describes a // cross-region replication relationship between 2 volumes in different // regions. type Replication struct { + // ClusterLocation: Optional. Location of the user cluster. + ClusterLocation string `json:"clusterLocation,omitempty"` // CreateTime: Output only. Replication create time. CreateTime string `json:"createTime,omitempty"` // Description: A description about this replication relationship. @@ -1410,6 +1623,17 @@ type Replication struct { // relationship is not healthy. It has missed the most recent scheduled // transfer. Healthy bool `json:"healthy,omitempty"` + // HybridPeeringDetails: Output only. Hybrid peering details. + HybridPeeringDetails *HybridPeeringDetails `json:"hybridPeeringDetails,omitempty"` + // HybridReplicationType: Output only. Type of the hybrid replication. + // + // Possible values: + // "HYBRID_REPLICATION_TYPE_UNSPECIFIED" - Unspecified hybrid replication + // type. + // "MIGRATION" - Hybrid replication type for migration. + // "CONTINUOUS_REPLICATION" - Hybrid replication type for continuous + // replication. + HybridReplicationType string `json:"hybridReplicationType,omitempty"` // Labels: Resource labels to represent user provided metadata. Labels map[string]string `json:"labels,omitempty"` // MirrorState: Output only. Indicates the state of mirroring. @@ -1421,6 +1645,8 @@ type Replication struct { // receive replication transfers. // "STOPPED" - Destination volume is not receiving replication transfers. // "TRANSFERRING" - Incremental replication is in progress. + // "BASELINE_TRANSFERRING" - Baseline replication is in progress. + // "ABORTED" - Replication is aborted. MirrorState string `json:"mirrorState,omitempty"` // Name: Identifier. The resource name of the Replication. Format: // `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/ @@ -1453,6 +1679,10 @@ type Replication struct { // "UPDATING" - Replication is updating. // "DELETING" - Replication is deleting. // "ERROR" - Replication is in error state. + // "PENDING_CLUSTER_PEERING" - Replication is waiting for cluster peering to + // be established. + // "PENDING_SVM_PEERING" - Replication is waiting for SVM peering to be + // established. State string `json:"state,omitempty"` // StateDetails: Output only. State details of the replication. StateDetails string `json:"stateDetails,omitempty"` @@ -1461,15 +1691,15 @@ type Replication struct { // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreateTime") to + // ForceSendFields is a list of field names (e.g. "ClusterLocation") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreateTime") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "ClusterLocation") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } @@ -1866,6 +2096,11 @@ func (s StoragePool) MarshalJSON() ([]byte, error) { type SwitchActiveReplicaZoneRequest struct { } +// SyncReplicationRequest: SyncReplicationRequest syncs the replication from +// source to destination. +type SyncReplicationRequest struct { +} + // TieringPolicy: Defines tiering policy for the volume. type TieringPolicy struct { // CoolingThresholdDays: Optional. Time in days to mark the volume's data block @@ -2006,6 +2241,9 @@ type Volume struct { // HasReplication: Output only. Indicates whether the volume is part of a // replication relationship. HasReplication bool `json:"hasReplication,omitempty"` + // HybridReplicationParameters: Optional. The Hybrid Replication parameters for + // the volume. + HybridReplicationParameters *HybridReplicationParameters `json:"hybridReplicationParameters,omitempty"` // KerberosEnabled: Optional. Flag indicating if the volume is a kerberos // volume or not, export policy rules control kerberos security modes (krb5, // krb5i, krb5p). @@ -2108,6 +2346,10 @@ type Volume struct { // "RESTORING" - Volume State is Restoring // "DISABLED" - Volume State is Disabled // "ERROR" - Volume State is Error + // "PREPARING" - Volume State is Preparing. Note that this is different from + // CREATING where CREATING means the volume is being created, while PREPARING + // means the volume is created and now being prepared for the replication. + // "READ_ONLY" - Volume State is Read Only State string `json:"state,omitempty"` // StateDetails: Output only. State details of the volume StateDetails string `json:"stateDetails,omitempty"` @@ -7460,68 +7702,68 @@ func (c *ProjectsLocationsVolumesRevertCall) Do(opts ...googleapi.CallOption) (* return ret, nil } -type ProjectsLocationsVolumesReplicationsCreateCall struct { - s *Service - parent string - replication *Replication - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ProjectsLocationsVolumesQuotaRulesCreateCall struct { + s *Service + parent string + quotarule *QuotaRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Create: Create a new replication for a volume. +// Create: Creates a new quota rule. // -// - parent: The NetApp volume to create the replications of, in the format -// `projects/{project_id}/locations/{location}/volumes/{volume_id}`. -func (r *ProjectsLocationsVolumesReplicationsService) Create(parent string, replication *Replication) *ProjectsLocationsVolumesReplicationsCreateCall { - c := &ProjectsLocationsVolumesReplicationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - parent: Parent value for CreateQuotaRuleRequest. +func (r *ProjectsLocationsVolumesQuotaRulesService) Create(parent string, quotarule *QuotaRule) *ProjectsLocationsVolumesQuotaRulesCreateCall { + c := &ProjectsLocationsVolumesQuotaRulesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent - c.replication = replication + c.quotarule = quotarule return c } -// ReplicationId sets the optional parameter "replicationId": Required. ID of -// the replication to create. Must be unique within the parent resource. Must -// contain only letters, numbers and hyphen, with the first character a letter, -// the last a letter or a number, and a 63 character maximum. -func (c *ProjectsLocationsVolumesReplicationsCreateCall) ReplicationId(replicationId string) *ProjectsLocationsVolumesReplicationsCreateCall { - c.urlParams_.Set("replicationId", replicationId) +// QuotaRuleId sets the optional parameter "quotaRuleId": Required. ID of the +// quota rule to create. Must be unique within the parent resource. Must +// contain only letters, numbers, underscore and hyphen, with the first +// character a letter or underscore, the last a letter or underscore or a +// number, and a 63 character maximum. +func (c *ProjectsLocationsVolumesQuotaRulesCreateCall) QuotaRuleId(quotaRuleId string) *ProjectsLocationsVolumesQuotaRulesCreateCall { + c.urlParams_.Set("quotaRuleId", quotaRuleId) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsLocationsVolumesReplicationsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsCreateCall { +func (c *ProjectsLocationsVolumesQuotaRulesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesQuotaRulesCreateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsLocationsVolumesReplicationsCreateCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsCreateCall { +func (c *ProjectsLocationsVolumesQuotaRulesCreateCall) Context(ctx context.Context) *ProjectsLocationsVolumesQuotaRulesCreateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsLocationsVolumesReplicationsCreateCall) Header() http.Header { +func (c *ProjectsLocationsVolumesQuotaRulesCreateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsLocationsVolumesReplicationsCreateCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsLocationsVolumesQuotaRulesCreateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.replication) + body, err := googleapi.WithoutDataWrapper.JSONReader(c.quotarule) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/replications") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/quotaRules") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -7534,12 +7776,12 @@ func (c *ProjectsLocationsVolumesReplicationsCreateCall) doRequest(alt string) ( return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "netapp.projects.locations.volumes.replications.create" call. +// Do executes the "netapp.projects.locations.volumes.quotaRules.create" call. // Any non-2xx status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. -func (c *ProjectsLocationsVolumesReplicationsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ProjectsLocationsVolumesQuotaRulesCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7571,7 +7813,7 @@ func (c *ProjectsLocationsVolumesReplicationsCreateCall) Do(opts ...googleapi.Ca return ret, nil } -type ProjectsLocationsVolumesReplicationsDeleteCall struct { +type ProjectsLocationsVolumesQuotaRulesDeleteCall struct { s *Service name string urlParams_ gensupport.URLParams @@ -7579,12 +7821,11 @@ type ProjectsLocationsVolumesReplicationsDeleteCall struct { header_ http.Header } -// Delete: Deletes a replication. +// Delete: Deletes a quota rule. // -// - name: The replication resource name, in the format -// `projects/*/locations/*/volumes/*/replications/{replication_id}`. -func (r *ProjectsLocationsVolumesReplicationsService) Delete(name string) *ProjectsLocationsVolumesReplicationsDeleteCall { - c := &ProjectsLocationsVolumesReplicationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - name: Name of the quota rule. +func (r *ProjectsLocationsVolumesQuotaRulesService) Delete(name string) *ProjectsLocationsVolumesQuotaRulesDeleteCall { + c := &ProjectsLocationsVolumesQuotaRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } @@ -7592,27 +7833,27 @@ func (r *ProjectsLocationsVolumesReplicationsService) Delete(name string) *Proje // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsDeleteCall { +func (c *ProjectsLocationsVolumesQuotaRulesDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesQuotaRulesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsDeleteCall { +func (c *ProjectsLocationsVolumesQuotaRulesDeleteCall) Context(ctx context.Context) *ProjectsLocationsVolumesQuotaRulesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Header() http.Header { +func (c *ProjectsLocationsVolumesQuotaRulesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsLocationsVolumesReplicationsDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsLocationsVolumesQuotaRulesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) var body io.Reader = nil c.urlParams_.Set("alt", alt) @@ -7630,12 +7871,12 @@ func (c *ProjectsLocationsVolumesReplicationsDeleteCall) doRequest(alt string) ( return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "netapp.projects.locations.volumes.replications.delete" call. +// Do executes the "netapp.projects.locations.volumes.quotaRules.delete" call. // Any non-2xx status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. -func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ProjectsLocationsVolumesQuotaRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7667,7 +7908,7 @@ func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Do(opts ...googleapi.Ca return ret, nil } -type ProjectsLocationsVolumesReplicationsGetCall struct { +type ProjectsLocationsVolumesQuotaRulesGetCall struct { s *Service name string urlParams_ gensupport.URLParams @@ -7676,13 +7917,11 @@ type ProjectsLocationsVolumesReplicationsGetCall struct { header_ http.Header } -// Get: Describe a replication for a volume. +// Get: Returns details of the specified quota rule. // -// - name: The replication resource name, in the format -// `projects/{project_id}/locations/{location}/volumes/{volume_id}/replication -// s/{replication_id}`. -func (r *ProjectsLocationsVolumesReplicationsService) Get(name string) *ProjectsLocationsVolumesReplicationsGetCall { - c := &ProjectsLocationsVolumesReplicationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - name: Name of the quota rule. +func (r *ProjectsLocationsVolumesQuotaRulesService) Get(name string) *ProjectsLocationsVolumesQuotaRulesGetCall { + c := &ProjectsLocationsVolumesQuotaRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } @@ -7690,7 +7929,7 @@ func (r *ProjectsLocationsVolumesReplicationsService) Get(name string) *Projects // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsLocationsVolumesReplicationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsGetCall { +func (c *ProjectsLocationsVolumesQuotaRulesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesQuotaRulesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -7698,27 +7937,27 @@ func (c *ProjectsLocationsVolumesReplicationsGetCall) Fields(s ...googleapi.Fiel // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. -func (c *ProjectsLocationsVolumesReplicationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsVolumesReplicationsGetCall { +func (c *ProjectsLocationsVolumesQuotaRulesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsVolumesQuotaRulesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsLocationsVolumesReplicationsGetCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsGetCall { +func (c *ProjectsLocationsVolumesQuotaRulesGetCall) Context(ctx context.Context) *ProjectsLocationsVolumesQuotaRulesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsLocationsVolumesReplicationsGetCall) Header() http.Header { +func (c *ProjectsLocationsVolumesQuotaRulesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsLocationsVolumesReplicationsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsLocationsVolumesQuotaRulesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) @@ -7739,12 +7978,12 @@ func (c *ProjectsLocationsVolumesReplicationsGetCall) doRequest(alt string) (*ht return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "netapp.projects.locations.volumes.replications.get" call. +// Do executes the "netapp.projects.locations.volumes.quotaRules.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Replication.ServerResponse.Header or (if a response was returned at all) in +// *QuotaRule.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. -func (c *ProjectsLocationsVolumesReplicationsGetCall) Do(opts ...googleapi.CallOption) (*Replication, error) { +func (c *ProjectsLocationsVolumesQuotaRulesGetCall) Do(opts ...googleapi.CallOption) (*QuotaRule, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7763,7 +8002,7 @@ func (c *ProjectsLocationsVolumesReplicationsGetCall) Do(opts ...googleapi.CallO if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Replication{ + ret := &QuotaRule{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, @@ -7776,7 +8015,7 @@ func (c *ProjectsLocationsVolumesReplicationsGetCall) Do(opts ...googleapi.CallO return ret, nil } -type ProjectsLocationsVolumesReplicationsListCall struct { +type ProjectsLocationsVolumesQuotaRulesListCall struct { s *Service parent string urlParams_ gensupport.URLParams @@ -7785,39 +8024,39 @@ type ProjectsLocationsVolumesReplicationsListCall struct { header_ http.Header } -// List: Returns descriptions of all replications for a volume. +// List: Returns list of all quota rules in a location. // -// - parent: The volume for which to retrieve replication information, in the -// format `projects/{project_id}/locations/{location}/volumes/{volume_id}`. -func (r *ProjectsLocationsVolumesReplicationsService) List(parent string) *ProjectsLocationsVolumesReplicationsListCall { - c := &ProjectsLocationsVolumesReplicationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - parent: Parent value for ListQuotaRulesRequest. +func (r *ProjectsLocationsVolumesQuotaRulesService) List(parent string) *ProjectsLocationsVolumesQuotaRulesListCall { + c := &ProjectsLocationsVolumesQuotaRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent return c } -// Filter sets the optional parameter "filter": List filter. -func (c *ProjectsLocationsVolumesReplicationsListCall) Filter(filter string) *ProjectsLocationsVolumesReplicationsListCall { +// Filter sets the optional parameter "filter": Filtering results +func (c *ProjectsLocationsVolumesQuotaRulesListCall) Filter(filter string) *ProjectsLocationsVolumesQuotaRulesListCall { c.urlParams_.Set("filter", filter) return c } -// OrderBy sets the optional parameter "orderBy": Sort results. Supported -// values are "name", "name desc" or "" (unsorted). -func (c *ProjectsLocationsVolumesReplicationsListCall) OrderBy(orderBy string) *ProjectsLocationsVolumesReplicationsListCall { +// OrderBy sets the optional parameter "orderBy": Hint for how to order the +// results +func (c *ProjectsLocationsVolumesQuotaRulesListCall) OrderBy(orderBy string) *ProjectsLocationsVolumesQuotaRulesListCall { c.urlParams_.Set("orderBy", orderBy) return c } -// PageSize sets the optional parameter "pageSize": The maximum number of items -// to return. -func (c *ProjectsLocationsVolumesReplicationsListCall) PageSize(pageSize int64) *ProjectsLocationsVolumesReplicationsListCall { +// PageSize sets the optional parameter "pageSize": Requested page size. Server +// may return fewer items than requested. If unspecified, the server will pick +// an appropriate default. +func (c *ProjectsLocationsVolumesQuotaRulesListCall) PageSize(pageSize int64) *ProjectsLocationsVolumesQuotaRulesListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } -// PageToken sets the optional parameter "pageToken": The next_page_token value -// to use if there are additional results to retrieve for this list request. -func (c *ProjectsLocationsVolumesReplicationsListCall) PageToken(pageToken string) *ProjectsLocationsVolumesReplicationsListCall { +// PageToken sets the optional parameter "pageToken": A token identifying a +// page of results the server should return. +func (c *ProjectsLocationsVolumesQuotaRulesListCall) PageToken(pageToken string) *ProjectsLocationsVolumesQuotaRulesListCall { c.urlParams_.Set("pageToken", pageToken) return c } @@ -7825,7 +8064,7 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) PageToken(pageToken strin // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsLocationsVolumesReplicationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsListCall { +func (c *ProjectsLocationsVolumesQuotaRulesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesQuotaRulesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -7833,27 +8072,27 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) Fields(s ...googleapi.Fie // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. -func (c *ProjectsLocationsVolumesReplicationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsVolumesReplicationsListCall { +func (c *ProjectsLocationsVolumesQuotaRulesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsVolumesQuotaRulesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsLocationsVolumesReplicationsListCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsListCall { +func (c *ProjectsLocationsVolumesQuotaRulesListCall) Context(ctx context.Context) *ProjectsLocationsVolumesQuotaRulesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsLocationsVolumesReplicationsListCall) Header() http.Header { +func (c *ProjectsLocationsVolumesQuotaRulesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsLocationsVolumesReplicationsListCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsLocationsVolumesQuotaRulesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) @@ -7861,7 +8100,7 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) doRequest(alt string) (*h var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/replications") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/quotaRules") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { @@ -7874,13 +8113,13 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) doRequest(alt string) (*h return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "netapp.projects.locations.volumes.replications.list" call. +// Do executes the "netapp.projects.locations.volumes.quotaRules.list" call. // Any non-2xx status code is an error. Response headers are in either -// *ListReplicationsResponse.ServerResponse.Header or (if a response was -// returned at all) in error.(*googleapi.Error).Header. Use -// googleapi.IsNotModified to check whether the returned error was because -// http.StatusNotModified was returned. -func (c *ProjectsLocationsVolumesReplicationsListCall) Do(opts ...googleapi.CallOption) (*ListReplicationsResponse, error) { +// *ListQuotaRulesResponse.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified was +// returned. +func (c *ProjectsLocationsVolumesQuotaRulesListCall) Do(opts ...googleapi.CallOption) (*ListQuotaRulesResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7899,7 +8138,7 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) Do(opts ...googleapi.Call if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ListReplicationsResponse{ + ret := &ListQuotaRulesResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, @@ -7915,7 +8154,7 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) Do(opts ...googleapi.Call // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. -func (c *ProjectsLocationsVolumesReplicationsListCall) Pages(ctx context.Context, f func(*ListReplicationsResponse) error) error { +func (c *ProjectsLocationsVolumesQuotaRulesListCall) Pages(ctx context.Context, f func(*ListQuotaRulesResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -7933,30 +8172,34 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) Pages(ctx context.Context } } -type ProjectsLocationsVolumesReplicationsPatchCall struct { - s *Service - name string - replication *Replication - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ProjectsLocationsVolumesQuotaRulesPatchCall struct { + s *Service + name string + quotarule *QuotaRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates the settings of a specific replication. +// Patch: Updates a quota rule. // -// - name: Identifier. The resource name of the Replication. Format: -// `projects/{project_id}/locations/{location}/volumes/{volume_id}/replication -// s/{replication_id}`. -func (r *ProjectsLocationsVolumesReplicationsService) Patch(name string, replication *Replication) *ProjectsLocationsVolumesReplicationsPatchCall { - c := &ProjectsLocationsVolumesReplicationsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - name: Identifier. The resource name of the active directory. Format: +// `projects/{project_number}/locations/{location_id}/quotaRules/{quota_rule_i +// d}`. +func (r *ProjectsLocationsVolumesQuotaRulesService) Patch(name string, quotarule *QuotaRule) *ProjectsLocationsVolumesQuotaRulesPatchCall { + c := &ProjectsLocationsVolumesQuotaRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name - c.replication = replication + c.quotarule = quotarule return c } -// UpdateMask sets the optional parameter "updateMask": Required. Mask of -// fields to update. At least one path must be supplied in this field. -func (c *ProjectsLocationsVolumesReplicationsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsVolumesReplicationsPatchCall { +// UpdateMask sets the optional parameter "updateMask": Field mask is used to +// specify the fields to be overwritten in the Quota Rule 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. +func (c *ProjectsLocationsVolumesQuotaRulesPatchCall) UpdateMask(updateMask string) *ProjectsLocationsVolumesQuotaRulesPatchCall { c.urlParams_.Set("updateMask", updateMask) return c } @@ -7964,30 +8207,30 @@ func (c *ProjectsLocationsVolumesReplicationsPatchCall) UpdateMask(updateMask st // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsLocationsVolumesReplicationsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsPatchCall { +func (c *ProjectsLocationsVolumesQuotaRulesPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesQuotaRulesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsLocationsVolumesReplicationsPatchCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsPatchCall { +func (c *ProjectsLocationsVolumesQuotaRulesPatchCall) Context(ctx context.Context) *ProjectsLocationsVolumesQuotaRulesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsLocationsVolumesReplicationsPatchCall) Header() http.Header { +func (c *ProjectsLocationsVolumesQuotaRulesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsLocationsVolumesReplicationsPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsLocationsVolumesQuotaRulesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.replication) + body, err := googleapi.WithoutDataWrapper.JSONReader(c.quotarule) if err != nil { return nil, err } @@ -8006,12 +8249,12 @@ func (c *ProjectsLocationsVolumesReplicationsPatchCall) doRequest(alt string) (* return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "netapp.projects.locations.volumes.replications.patch" call. +// Do executes the "netapp.projects.locations.volumes.quotaRules.patch" call. // Any non-2xx status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. -func (c *ProjectsLocationsVolumesReplicationsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ProjectsLocationsVolumesQuotaRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8043,8 +8286,694 @@ func (c *ProjectsLocationsVolumesReplicationsPatchCall) Do(opts ...googleapi.Cal return ret, nil } -type ProjectsLocationsVolumesReplicationsResumeCall struct { - s *Service +type ProjectsLocationsVolumesReplicationsCreateCall struct { + s *Service + parent string + replication *Replication + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Create: Create a new replication for a volume. +// +// - parent: The NetApp volume to create the replications of, in the format +// `projects/{project_id}/locations/{location}/volumes/{volume_id}`. +func (r *ProjectsLocationsVolumesReplicationsService) Create(parent string, replication *Replication) *ProjectsLocationsVolumesReplicationsCreateCall { + c := &ProjectsLocationsVolumesReplicationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.replication = replication + return c +} + +// ReplicationId sets the optional parameter "replicationId": Required. ID of +// the replication to create. Must be unique within the parent resource. Must +// contain only letters, numbers and hyphen, with the first character a letter, +// the last a letter or a number, and a 63 character maximum. +func (c *ProjectsLocationsVolumesReplicationsCreateCall) ReplicationId(replicationId string) *ProjectsLocationsVolumesReplicationsCreateCall { + c.urlParams_.Set("replicationId", replicationId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsCreateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsCreateCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsCreateCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsCreateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsCreateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.replication) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/replications") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.create" call. +// Any non-2xx status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +type ProjectsLocationsVolumesReplicationsDeleteCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes a replication. +// +// - name: The replication resource name, in the format +// `projects/*/locations/*/volumes/*/replications/{replication_id}`. +func (r *ProjectsLocationsVolumesReplicationsService) Delete(name string) *ProjectsLocationsVolumesReplicationsDeleteCall { + c := &ProjectsLocationsVolumesReplicationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.delete" call. +// Any non-2xx status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +type ProjectsLocationsVolumesReplicationsEstablishPeeringCall struct { + s *Service + name string + establishpeeringrequest *EstablishPeeringRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// EstablishPeering: Establish replication peering. +// +// - name: The resource name of the replication, in the format of +// projects/{project_id}/locations/{location}/volumes/{volume_id}/replications +// /{replication_id}. +func (r *ProjectsLocationsVolumesReplicationsService) EstablishPeering(name string, establishpeeringrequest *EstablishPeeringRequest) *ProjectsLocationsVolumesReplicationsEstablishPeeringCall { + c := &ProjectsLocationsVolumesReplicationsEstablishPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.establishpeeringrequest = establishpeeringrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsEstablishPeeringCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsEstablishPeeringCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsEstablishPeeringCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsEstablishPeeringCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsEstablishPeeringCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsEstablishPeeringCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.establishpeeringrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:establishPeering") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.establishPeering" call. +// Any non-2xx status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsEstablishPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +type ProjectsLocationsVolumesReplicationsGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Describe a replication for a volume. +// +// - name: The replication resource name, in the format +// `projects/{project_id}/locations/{location}/volumes/{volume_id}/replication +// s/{replication_id}`. +func (r *ProjectsLocationsVolumesReplicationsService) Get(name string) *ProjectsLocationsVolumesReplicationsGetCall { + c := &ProjectsLocationsVolumesReplicationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an optional parameter which makes the operation fail if the +// object's ETag matches the given value. This is useful for getting updates +// only after the object has changed since the last request. +func (c *ProjectsLocationsVolumesReplicationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsVolumesReplicationsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsGetCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *Replication.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsGetCall) Do(opts ...googleapi.CallOption) (*Replication, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Replication{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +type ProjectsLocationsVolumesReplicationsListCall struct { + s *Service + parent string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Returns descriptions of all replications for a volume. +// +// - parent: The volume for which to retrieve replication information, in the +// format `projects/{project_id}/locations/{location}/volumes/{volume_id}`. +func (r *ProjectsLocationsVolumesReplicationsService) List(parent string) *ProjectsLocationsVolumesReplicationsListCall { + c := &ProjectsLocationsVolumesReplicationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + return c +} + +// Filter sets the optional parameter "filter": List filter. +func (c *ProjectsLocationsVolumesReplicationsListCall) Filter(filter string) *ProjectsLocationsVolumesReplicationsListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// OrderBy sets the optional parameter "orderBy": Sort results. Supported +// values are "name", "name desc" or "" (unsorted). +func (c *ProjectsLocationsVolumesReplicationsListCall) OrderBy(orderBy string) *ProjectsLocationsVolumesReplicationsListCall { + c.urlParams_.Set("orderBy", orderBy) + return c +} + +// PageSize sets the optional parameter "pageSize": The maximum number of items +// to return. +func (c *ProjectsLocationsVolumesReplicationsListCall) PageSize(pageSize int64) *ProjectsLocationsVolumesReplicationsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": The next_page_token value +// to use if there are additional results to retrieve for this list request. +func (c *ProjectsLocationsVolumesReplicationsListCall) PageToken(pageToken string) *ProjectsLocationsVolumesReplicationsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an optional parameter which makes the operation fail if the +// object's ETag matches the given value. This is useful for getting updates +// only after the object has changed since the last request. +func (c *ProjectsLocationsVolumesReplicationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsVolumesReplicationsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsListCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/replications") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *ListReplicationsResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsListCall) Do(opts ...googleapi.CallOption) (*ListReplicationsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &ListReplicationsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *ProjectsLocationsVolumesReplicationsListCall) Pages(ctx context.Context, f func(*ListReplicationsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +type ProjectsLocationsVolumesReplicationsPatchCall struct { + s *Service + name string + replication *Replication + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates the settings of a specific replication. +// +// - name: Identifier. The resource name of the Replication. Format: +// `projects/{project_id}/locations/{location}/volumes/{volume_id}/replication +// s/{replication_id}`. +func (r *ProjectsLocationsVolumesReplicationsService) Patch(name string, replication *Replication) *ProjectsLocationsVolumesReplicationsPatchCall { + c := &ProjectsLocationsVolumesReplicationsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.replication = replication + return c +} + +// UpdateMask sets the optional parameter "updateMask": Required. Mask of +// fields to update. At least one path must be supplied in this field. +func (c *ProjectsLocationsVolumesReplicationsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsVolumesReplicationsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsPatchCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.replication) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.patch" call. +// Any non-2xx status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +type ProjectsLocationsVolumesReplicationsResumeCall struct { + s *Service name string resumereplicationrequest *ResumeReplicationRequest urlParams_ gensupport.URLParams @@ -8353,6 +9282,110 @@ func (c *ProjectsLocationsVolumesReplicationsStopCall) Do(opts ...googleapi.Call return ret, nil } +type ProjectsLocationsVolumesReplicationsSyncCall struct { + s *Service + name string + syncreplicationrequest *SyncReplicationRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Sync: Syncs the replication. This will invoke one time volume data transfer +// from source to destination. +// +// - name: The resource name of the replication, in the format of +// projects/{project_id}/locations/{location}/volumes/{volume_id}/replications +// /{replication_id}. +func (r *ProjectsLocationsVolumesReplicationsService) Sync(name string, syncreplicationrequest *SyncReplicationRequest) *ProjectsLocationsVolumesReplicationsSyncCall { + c := &ProjectsLocationsVolumesReplicationsSyncCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.syncreplicationrequest = syncreplicationrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsSyncCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsSyncCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsSyncCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsSyncCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsSyncCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsSyncCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.syncreplicationrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:sync") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.sync" call. +// Any non-2xx status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsSyncCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + type ProjectsLocationsVolumesSnapshotsCreateCall struct { s *Service parent string diff --git a/netapp/v1beta1/netapp-api.json b/netapp/v1beta1/netapp-api.json index becf395afa..b0b584e94f 100644 --- a/netapp/v1beta1/netapp-api.json +++ b/netapp/v1beta1/netapp-api.json @@ -1588,6 +1588,173 @@ } }, "resources": { + "quotaRules": { + "methods": { + "create": { + "description": "Creates a new quota rule.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/quotaRules", + "httpMethod": "POST", + "id": "netapp.projects.locations.volumes.quotaRules.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Parent value for CreateQuotaRuleRequest", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", + "required": true, + "type": "string" + }, + "quotaRuleId": { + "description": "Required. ID of the quota rule to create. Must be unique within the parent resource. Must contain only letters, numbers, underscore and hyphen, with the first character a letter or underscore, the last a letter or underscore or a number, and a 63 character maximum.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/quotaRules", + "request": { + "$ref": "QuotaRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a quota rule.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/quotaRules/{quotaRulesId}", + "httpMethod": "DELETE", + "id": "netapp.projects.locations.volumes.quotaRules.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the quota rule.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/quotaRules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns details of the specified quota rule.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/quotaRules/{quotaRulesId}", + "httpMethod": "GET", + "id": "netapp.projects.locations.volumes.quotaRules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the quota rule", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/quotaRules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "QuotaRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns list of all quota rules in a location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/quotaRules", + "httpMethod": "GET", + "id": "netapp.projects.locations.volumes.quotaRules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Hint for how to order the results", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results the server should return.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent value for ListQuotaRulesRequest", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/quotaRules", + "response": { + "$ref": "ListQuotaRulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a quota rule.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/quotaRules/{quotaRulesId}", + "httpMethod": "PATCH", + "id": "netapp.projects.locations.volumes.quotaRules.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Identifier. The resource name of the active directory. Format: `projects/{project_number}/locations/{location_id}/quotaRules/{quota_rule_id}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/quotaRules/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the Quota Rule 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.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "QuotaRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "replications": { "methods": { "create": { @@ -1648,6 +1815,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "establishPeering": { + "description": "Establish replication peering.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}:establishPeering", + "httpMethod": "POST", + "id": "netapp.projects.locations.volumes.replications.establishPeering", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the replication, in the format of projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/replications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:establishPeering", + "request": { + "$ref": "EstablishPeeringRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Describe a replication for a volume.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}", @@ -1836,6 +2031,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "sync": { + "description": "Syncs the replication. This will invoke one time volume data transfer from source to destination.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/replications/{replicationsId}:sync", + "httpMethod": "POST", + "id": "netapp.projects.locations.volumes.replications.sync", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the replication, in the format of projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/replications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:sync", + "request": { + "$ref": "SyncReplicationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -2013,7 +2236,7 @@ } } }, - "revision": "20241021", + "revision": "20241106", "rootUrl": "https://netapp.googleapis.com/", "schemas": { "ActiveDirectory": { @@ -2441,6 +2664,32 @@ "properties": {}, "type": "object" }, + "EstablishPeeringRequest": { + "description": "EstablishPeeringRequest establishes cluster and svm peerings between the source and the destination replications.", + "id": "EstablishPeeringRequest", + "properties": { + "peerClusterName": { + "description": "Required. Name of the user's local source cluster to be peered with the destination cluster.", + "type": "string" + }, + "peerIpAddresses": { + "description": "Optional. List of IPv4 ip addresses to be used for peering.", + "items": { + "type": "string" + }, + "type": "array" + }, + "peerSvmName": { + "description": "Required. Name of the user's local source vserver svm to be peered with the destination vserver svm.", + "type": "string" + }, + "peerVolumeName": { + "description": "Required. Name of the user's local source volume to be peered with the destination volume.", + "type": "string" + } + }, + "type": "object" + }, "ExportPolicy": { "description": "Defines the export policy for the volume.", "id": "ExportPolicy", @@ -2478,6 +2727,75 @@ }, "type": "object" }, + "HybridPeeringDetails": { + "description": "HybridPeeringDetails contains details about the hybrid peering.", + "id": "HybridPeeringDetails", + "properties": { + "command": { + "description": "Optional. Copy-paste-able commands to be used on user's ONTAP to accept peering requests.", + "type": "string" + }, + "commandExpiryTime": { + "description": "Optional. Expiration time for the peering command to be executed on user's ONTAP.", + "format": "google-datetime", + "type": "string" + }, + "passphrase": { + "description": "Optional. Temporary passphrase generated to accept cluster peering command.", + "type": "string" + }, + "subnetIp": { + "description": "Optional. IP address of the subnet.", + "type": "string" + } + }, + "type": "object" + }, + "HybridReplicationParameters": { + "description": "The Hybrid Replication parameters for the volume.", + "id": "HybridReplicationParameters", + "properties": { + "clusterLocation": { + "description": "Optional. Name of source cluster location associated with the Hybrid replication. This is a free-form field for the display purpose only.", + "type": "string" + }, + "description": { + "description": "Optional. Description of the replication.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels to be added to the replication as the key value pairs.", + "type": "object" + }, + "peerClusterName": { + "description": "Required. Name of the user's local source cluster to be peered with the destination cluster.", + "type": "string" + }, + "peerIpAddresses": { + "description": "Required. List of node ip addresses to be peered with.", + "items": { + "type": "string" + }, + "type": "array" + }, + "peerSvmName": { + "description": "Required. Name of the user's local source vserver svm to be peered with the destination vserver svm.", + "type": "string" + }, + "peerVolumeName": { + "description": "Required. Name of the user's local source volume to be peered with the destination volume.", + "type": "string" + }, + "replication": { + "description": "Required. Desired name for the replication of this volume.", + "type": "string" + } + }, + "type": "object" + }, "KmsConfig": { "description": "KmsConfig is the customer managed encryption key(CMEK) configuration.", "id": "KmsConfig", @@ -2719,6 +3037,31 @@ }, "type": "object" }, + "ListQuotaRulesResponse": { + "description": "ListQuotaRulesResponse is the response to a ListQuotaRulesRequest.", + "id": "ListQuotaRulesResponse", + "properties": { + "nextPageToken": { + "description": "A token identifying a page of results the server should return.", + "type": "string" + }, + "quotaRules": { + "description": "List of quota rules", + "items": { + "$ref": "QuotaRule" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListReplicationsResponse": { "description": "ListReplicationsResponse is the result of ListReplicationsRequest.", "id": "ListReplicationsResponse", @@ -3022,10 +3365,95 @@ }, "type": "object" }, + "QuotaRule": { + "description": "QuotaRule specifies the maximum disk space a user or group can use within a volume. They can be used for creating default and individual quota rules.", + "id": "QuotaRule", + "properties": { + "createTime": { + "description": "Output only. Create time of the quota rule", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description of the quota rule", + "type": "string" + }, + "diskLimitMib": { + "description": "Required. The maximum allowed disk space in MiB.", + "format": "int32", + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels of the quota rule", + "type": "object" + }, + "name": { + "description": "Identifier. The resource name of the active directory. Format: `projects/{project_number}/locations/{location_id}/quotaRules/{quota_rule_id}`.", + "type": "string" + }, + "state": { + "description": "Output only. State of the quota rule", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "UPDATING", + "DELETING", + "READY", + "ERROR" + ], + "enumDescriptions": [ + "Unspecified state for quota rule", + "Quota rule is creating", + "Quota rule is updating", + "Quota rule is deleting", + "Quota rule is ready", + "Quota rule is in error state." + ], + "readOnly": true, + "type": "string" + }, + "stateDetails": { + "description": "Output only. State details of the quota rule", + "readOnly": true, + "type": "string" + }, + "target": { + "description": "Optional. The quota rule applies to the specified user or group, identified by a Unix UID/GID, Windows SID, or null for default.", + "type": "string" + }, + "type": { + "description": "Required. The type of quota rule.", + "enum": [ + "TYPE_UNSPECIFIED", + "INDIVIDUAL_USER_QUOTA", + "INDIVIDUAL_GROUP_QUOTA", + "DEFAULT_USER_QUOTA", + "DEFAULT_GROUP_QUOTA" + ], + "enumDescriptions": [ + "Unspecified type for quota rule", + "Individual user quota rule", + "Individual group quota rule", + "Default user quota rule", + "Default group quota rule" + ], + "type": "string" + } + }, + "type": "object" + }, "Replication": { "description": "Replication is a nested resource under Volume, that describes a cross-region replication relationship between 2 volumes in different regions.", "id": "Replication", "properties": { + "clusterLocation": { + "description": "Optional. Location of the user cluster.", + "type": "string" + }, "createTime": { "description": "Output only. Replication create time.", "format": "google-datetime", @@ -3050,6 +3478,26 @@ "readOnly": true, "type": "boolean" }, + "hybridPeeringDetails": { + "$ref": "HybridPeeringDetails", + "description": "Output only. Hybrid peering details.", + "readOnly": true + }, + "hybridReplicationType": { + "description": "Output only. Type of the hybrid replication.", + "enum": [ + "HYBRID_REPLICATION_TYPE_UNSPECIFIED", + "MIGRATION", + "CONTINUOUS_REPLICATION" + ], + "enumDescriptions": [ + "Unspecified hybrid replication type.", + "Hybrid replication type for migration.", + "Hybrid replication type for continuous replication." + ], + "readOnly": true, + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -3064,14 +3512,18 @@ "PREPARING", "MIRRORED", "STOPPED", - "TRANSFERRING" + "TRANSFERRING", + "BASELINE_TRANSFERRING", + "ABORTED" ], "enumDescriptions": [ "Unspecified MirrorState", "Destination volume is being prepared.", "Destination volume has been initialized and is ready to receive replication transfers.", "Destination volume is not receiving replication transfers.", - "Incremental replication is in progress." + "Incremental replication is in progress.", + "Baseline replication is in progress.", + "Replication is aborted." ], "readOnly": true, "type": "string" @@ -3124,7 +3576,9 @@ "READY", "UPDATING", "DELETING", - "ERROR" + "ERROR", + "PENDING_CLUSTER_PEERING", + "PENDING_SVM_PEERING" ], "enumDescriptions": [ "Unspecified replication State", @@ -3132,7 +3586,9 @@ "Replication is ready.", "Replication is updating.", "Replication is deleting.", - "Replication is in error state." + "Replication is in error state.", + "Replication is waiting for cluster peering to be established.", + "Replication is waiting for SVM peering to be established." ], "readOnly": true, "type": "string" @@ -3529,6 +3985,12 @@ "properties": {}, "type": "object" }, + "SyncReplicationRequest": { + "description": "SyncReplicationRequest syncs the replication from source to destination.", + "id": "SyncReplicationRequest", + "properties": {}, + "type": "object" + }, "TieringPolicy": { "description": "Defines tiering policy for the volume.", "id": "TieringPolicy", @@ -3687,6 +4149,10 @@ "readOnly": true, "type": "boolean" }, + "hybridReplicationParameters": { + "$ref": "HybridReplicationParameters", + "description": "Optional. The Hybrid Replication parameters for the volume." + }, "kerberosEnabled": { "description": "Optional. Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).", "type": "boolean" @@ -3872,7 +4338,9 @@ "UPDATING", "RESTORING", "DISABLED", - "ERROR" + "ERROR", + "PREPARING", + "READ_ONLY" ], "enumDescriptions": [ "Unspecified Volume State", @@ -3882,7 +4350,9 @@ "Volume State is Updating", "Volume State is Restoring", "Volume State is Disabled", - "Volume State is Error" + "Volume State is Error", + "Volume State is Preparing. Note that this is different from CREATING where CREATING means the volume is being created, while PREPARING means the volume is created and now being prepared for the replication.", + "Volume State is Read Only" ], "readOnly": true, "type": "string" diff --git a/netapp/v1beta1/netapp-gen.go b/netapp/v1beta1/netapp-gen.go index 2436bec3d4..8f8ea26809 100644 --- a/netapp/v1beta1/netapp-gen.go +++ b/netapp/v1beta1/netapp-gen.go @@ -264,6 +264,7 @@ type ProjectsLocationsStoragePoolsService struct { func NewProjectsLocationsVolumesService(s *Service) *ProjectsLocationsVolumesService { rs := &ProjectsLocationsVolumesService{s: s} + rs.QuotaRules = NewProjectsLocationsVolumesQuotaRulesService(s) rs.Replications = NewProjectsLocationsVolumesReplicationsService(s) rs.Snapshots = NewProjectsLocationsVolumesSnapshotsService(s) return rs @@ -272,11 +273,22 @@ func NewProjectsLocationsVolumesService(s *Service) *ProjectsLocationsVolumesSer type ProjectsLocationsVolumesService struct { s *Service + QuotaRules *ProjectsLocationsVolumesQuotaRulesService + Replications *ProjectsLocationsVolumesReplicationsService Snapshots *ProjectsLocationsVolumesSnapshotsService } +func NewProjectsLocationsVolumesQuotaRulesService(s *Service) *ProjectsLocationsVolumesQuotaRulesService { + rs := &ProjectsLocationsVolumesQuotaRulesService{s: s} + return rs +} + +type ProjectsLocationsVolumesQuotaRulesService struct { + s *Service +} + func NewProjectsLocationsVolumesReplicationsService(s *Service) *ProjectsLocationsVolumesReplicationsService { rs := &ProjectsLocationsVolumesReplicationsService{s: s} return rs @@ -681,6 +693,38 @@ func (s DestinationVolumeParameters) MarshalJSON() ([]byte, error) { type EncryptVolumesRequest struct { } +// EstablishPeeringRequest: EstablishPeeringRequest establishes cluster and svm +// peerings between the source and the destination replications. +type EstablishPeeringRequest struct { + // PeerClusterName: Required. Name of the user's local source cluster to be + // peered with the destination cluster. + PeerClusterName string `json:"peerClusterName,omitempty"` + // PeerIpAddresses: Optional. List of IPv4 ip addresses to be used for peering. + PeerIpAddresses []string `json:"peerIpAddresses,omitempty"` + // PeerSvmName: Required. Name of the user's local source vserver svm to be + // peered with the destination vserver svm. + PeerSvmName string `json:"peerSvmName,omitempty"` + // PeerVolumeName: Required. Name of the user's local source volume to be + // peered with the destination volume. + PeerVolumeName string `json:"peerVolumeName,omitempty"` + // ForceSendFields is a list of field names (e.g. "PeerClusterName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "PeerClusterName") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s EstablishPeeringRequest) MarshalJSON() ([]byte, error) { + type NoMethod EstablishPeeringRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + // ExportPolicy: Defines the export policy for the volume. type ExportPolicy struct { // Rules: Required. List of export policy rules @@ -755,6 +799,81 @@ func (s *HourlySchedule) UnmarshalJSON(data []byte) error { return nil } +// HybridPeeringDetails: HybridPeeringDetails contains details about the hybrid +// peering. +type HybridPeeringDetails struct { + // Command: Optional. Copy-paste-able commands to be used on user's ONTAP to + // accept peering requests. + Command string `json:"command,omitempty"` + // CommandExpiryTime: Optional. Expiration time for the peering command to be + // executed on user's ONTAP. + CommandExpiryTime string `json:"commandExpiryTime,omitempty"` + // Passphrase: Optional. Temporary passphrase generated to accept cluster + // peering command. + Passphrase string `json:"passphrase,omitempty"` + // SubnetIp: Optional. IP address of the subnet. + SubnetIp string `json:"subnetIp,omitempty"` + // ForceSendFields is a list of field names (e.g. "Command") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Command") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HybridPeeringDetails) MarshalJSON() ([]byte, error) { + type NoMethod HybridPeeringDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// HybridReplicationParameters: The Hybrid Replication parameters for the +// volume. +type HybridReplicationParameters struct { + // ClusterLocation: Optional. Name of source cluster location associated with + // the Hybrid replication. This is a free-form field for the display purpose + // only. + ClusterLocation string `json:"clusterLocation,omitempty"` + // Description: Optional. Description of the replication. + Description string `json:"description,omitempty"` + // Labels: Optional. Labels to be added to the replication as the key value + // pairs. + Labels map[string]string `json:"labels,omitempty"` + // PeerClusterName: Required. Name of the user's local source cluster to be + // peered with the destination cluster. + PeerClusterName string `json:"peerClusterName,omitempty"` + // PeerIpAddresses: Required. List of node ip addresses to be peered with. + PeerIpAddresses []string `json:"peerIpAddresses,omitempty"` + // PeerSvmName: Required. Name of the user's local source vserver svm to be + // peered with the destination vserver svm. + PeerSvmName string `json:"peerSvmName,omitempty"` + // PeerVolumeName: Required. Name of the user's local source volume to be + // peered with the destination volume. + PeerVolumeName string `json:"peerVolumeName,omitempty"` + // Replication: Required. Desired name for the replication of this volume. + Replication string `json:"replication,omitempty"` + // ForceSendFields is a list of field names (e.g. "ClusterLocation") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ClusterLocation") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HybridReplicationParameters) MarshalJSON() ([]byte, error) { + type NoMethod HybridReplicationParameters + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + // KmsConfig: KmsConfig is the customer managed encryption key(CMEK) // configuration. type KmsConfig struct { @@ -1030,6 +1149,37 @@ func (s ListOperationsResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } +// ListQuotaRulesResponse: ListQuotaRulesResponse is the response to a +// ListQuotaRulesRequest. +type ListQuotaRulesResponse struct { + // NextPageToken: A token identifying a page of results the server should + // return. + NextPageToken string `json:"nextPageToken,omitempty"` + // QuotaRules: List of quota rules + QuotaRules []*QuotaRule `json:"quotaRules,omitempty"` + // Unreachable: Locations that could not be reached. + Unreachable []string `json:"unreachable,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "NextPageToken") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NextPageToken") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ListQuotaRulesResponse) MarshalJSON() ([]byte, error) { + type NoMethod ListQuotaRulesResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + // ListReplicationsResponse: ListReplicationsResponse is the result of // ListReplicationsRequest. type ListReplicationsResponse struct { @@ -1390,10 +1540,73 @@ func (s OperationMetadata) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } +// QuotaRule: QuotaRule specifies the maximum disk space a user or group can +// use within a volume. They can be used for creating default and individual +// quota rules. +type QuotaRule struct { + // CreateTime: Output only. Create time of the quota rule + CreateTime string `json:"createTime,omitempty"` + // Description: Optional. Description of the quota rule + Description string `json:"description,omitempty"` + // DiskLimitMib: Required. The maximum allowed disk space in MiB. + DiskLimitMib int64 `json:"diskLimitMib,omitempty"` + // Labels: Optional. Labels of the quota rule + Labels map[string]string `json:"labels,omitempty"` + // Name: Identifier. The resource name of the active directory. Format: + // `projects/{project_number}/locations/{location_id}/quotaRules/{quota_rule_id} + // `. + Name string `json:"name,omitempty"` + // State: Output only. State of the quota rule + // + // Possible values: + // "STATE_UNSPECIFIED" - Unspecified state for quota rule + // "CREATING" - Quota rule is creating + // "UPDATING" - Quota rule is updating + // "DELETING" - Quota rule is deleting + // "READY" - Quota rule is ready + // "ERROR" - Quota rule is in error state. + State string `json:"state,omitempty"` + // StateDetails: Output only. State details of the quota rule + StateDetails string `json:"stateDetails,omitempty"` + // Target: Optional. The quota rule applies to the specified user or group, + // identified by a Unix UID/GID, Windows SID, or null for default. + Target string `json:"target,omitempty"` + // Type: Required. The type of quota rule. + // + // Possible values: + // "TYPE_UNSPECIFIED" - Unspecified type for quota rule + // "INDIVIDUAL_USER_QUOTA" - Individual user quota rule + // "INDIVIDUAL_GROUP_QUOTA" - Individual group quota rule + // "DEFAULT_USER_QUOTA" - Default user quota rule + // "DEFAULT_GROUP_QUOTA" - Default group quota rule + Type string `json:"type,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreateTime") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CreateTime") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s QuotaRule) MarshalJSON() ([]byte, error) { + type NoMethod QuotaRule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + // Replication: Replication is a nested resource under Volume, that describes a // cross-region replication relationship between 2 volumes in different // regions. type Replication struct { + // ClusterLocation: Optional. Location of the user cluster. + ClusterLocation string `json:"clusterLocation,omitempty"` // CreateTime: Output only. Replication create time. CreateTime string `json:"createTime,omitempty"` // Description: A description about this replication relationship. @@ -1410,6 +1623,17 @@ type Replication struct { // relationship is not healthy. It has missed the most recent scheduled // transfer. Healthy bool `json:"healthy,omitempty"` + // HybridPeeringDetails: Output only. Hybrid peering details. + HybridPeeringDetails *HybridPeeringDetails `json:"hybridPeeringDetails,omitempty"` + // HybridReplicationType: Output only. Type of the hybrid replication. + // + // Possible values: + // "HYBRID_REPLICATION_TYPE_UNSPECIFIED" - Unspecified hybrid replication + // type. + // "MIGRATION" - Hybrid replication type for migration. + // "CONTINUOUS_REPLICATION" - Hybrid replication type for continuous + // replication. + HybridReplicationType string `json:"hybridReplicationType,omitempty"` // Labels: Resource labels to represent user provided metadata. Labels map[string]string `json:"labels,omitempty"` // MirrorState: Output only. Indicates the state of mirroring. @@ -1421,6 +1645,8 @@ type Replication struct { // receive replication transfers. // "STOPPED" - Destination volume is not receiving replication transfers. // "TRANSFERRING" - Incremental replication is in progress. + // "BASELINE_TRANSFERRING" - Baseline replication is in progress. + // "ABORTED" - Replication is aborted. MirrorState string `json:"mirrorState,omitempty"` // Name: Identifier. The resource name of the Replication. Format: // `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/ @@ -1453,6 +1679,10 @@ type Replication struct { // "UPDATING" - Replication is updating. // "DELETING" - Replication is deleting. // "ERROR" - Replication is in error state. + // "PENDING_CLUSTER_PEERING" - Replication is waiting for cluster peering to + // be established. + // "PENDING_SVM_PEERING" - Replication is waiting for SVM peering to be + // established. State string `json:"state,omitempty"` // StateDetails: Output only. State details of the replication. StateDetails string `json:"stateDetails,omitempty"` @@ -1461,15 +1691,15 @@ type Replication struct { // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreateTime") to + // ForceSendFields is a list of field names (e.g. "ClusterLocation") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreateTime") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "ClusterLocation") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } @@ -1866,6 +2096,11 @@ func (s StoragePool) MarshalJSON() ([]byte, error) { type SwitchActiveReplicaZoneRequest struct { } +// SyncReplicationRequest: SyncReplicationRequest syncs the replication from +// source to destination. +type SyncReplicationRequest struct { +} + // TieringPolicy: Defines tiering policy for the volume. type TieringPolicy struct { // CoolingThresholdDays: Optional. Time in days to mark the volume's data block @@ -2006,6 +2241,9 @@ type Volume struct { // HasReplication: Output only. Indicates whether the volume is part of a // replication relationship. HasReplication bool `json:"hasReplication,omitempty"` + // HybridReplicationParameters: Optional. The Hybrid Replication parameters for + // the volume. + HybridReplicationParameters *HybridReplicationParameters `json:"hybridReplicationParameters,omitempty"` // KerberosEnabled: Optional. Flag indicating if the volume is a kerberos // volume or not, export policy rules control kerberos security modes (krb5, // krb5i, krb5p). @@ -2108,6 +2346,10 @@ type Volume struct { // "RESTORING" - Volume State is Restoring // "DISABLED" - Volume State is Disabled // "ERROR" - Volume State is Error + // "PREPARING" - Volume State is Preparing. Note that this is different from + // CREATING where CREATING means the volume is being created, while PREPARING + // means the volume is created and now being prepared for the replication. + // "READ_ONLY" - Volume State is Read Only State string `json:"state,omitempty"` // StateDetails: Output only. State details of the volume StateDetails string `json:"stateDetails,omitempty"` @@ -7460,68 +7702,68 @@ func (c *ProjectsLocationsVolumesRevertCall) Do(opts ...googleapi.CallOption) (* return ret, nil } -type ProjectsLocationsVolumesReplicationsCreateCall struct { - s *Service - parent string - replication *Replication - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ProjectsLocationsVolumesQuotaRulesCreateCall struct { + s *Service + parent string + quotarule *QuotaRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Create: Create a new replication for a volume. +// Create: Creates a new quota rule. // -// - parent: The NetApp volume to create the replications of, in the format -// `projects/{project_id}/locations/{location}/volumes/{volume_id}`. -func (r *ProjectsLocationsVolumesReplicationsService) Create(parent string, replication *Replication) *ProjectsLocationsVolumesReplicationsCreateCall { - c := &ProjectsLocationsVolumesReplicationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - parent: Parent value for CreateQuotaRuleRequest. +func (r *ProjectsLocationsVolumesQuotaRulesService) Create(parent string, quotarule *QuotaRule) *ProjectsLocationsVolumesQuotaRulesCreateCall { + c := &ProjectsLocationsVolumesQuotaRulesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent - c.replication = replication + c.quotarule = quotarule return c } -// ReplicationId sets the optional parameter "replicationId": Required. ID of -// the replication to create. Must be unique within the parent resource. Must -// contain only letters, numbers and hyphen, with the first character a letter, -// the last a letter or a number, and a 63 character maximum. -func (c *ProjectsLocationsVolumesReplicationsCreateCall) ReplicationId(replicationId string) *ProjectsLocationsVolumesReplicationsCreateCall { - c.urlParams_.Set("replicationId", replicationId) +// QuotaRuleId sets the optional parameter "quotaRuleId": Required. ID of the +// quota rule to create. Must be unique within the parent resource. Must +// contain only letters, numbers, underscore and hyphen, with the first +// character a letter or underscore, the last a letter or underscore or a +// number, and a 63 character maximum. +func (c *ProjectsLocationsVolumesQuotaRulesCreateCall) QuotaRuleId(quotaRuleId string) *ProjectsLocationsVolumesQuotaRulesCreateCall { + c.urlParams_.Set("quotaRuleId", quotaRuleId) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsLocationsVolumesReplicationsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsCreateCall { +func (c *ProjectsLocationsVolumesQuotaRulesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesQuotaRulesCreateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsLocationsVolumesReplicationsCreateCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsCreateCall { +func (c *ProjectsLocationsVolumesQuotaRulesCreateCall) Context(ctx context.Context) *ProjectsLocationsVolumesQuotaRulesCreateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsLocationsVolumesReplicationsCreateCall) Header() http.Header { +func (c *ProjectsLocationsVolumesQuotaRulesCreateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsLocationsVolumesReplicationsCreateCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsLocationsVolumesQuotaRulesCreateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.replication) + body, err := googleapi.WithoutDataWrapper.JSONReader(c.quotarule) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/replications") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/quotaRules") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -7534,12 +7776,12 @@ func (c *ProjectsLocationsVolumesReplicationsCreateCall) doRequest(alt string) ( return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "netapp.projects.locations.volumes.replications.create" call. +// Do executes the "netapp.projects.locations.volumes.quotaRules.create" call. // Any non-2xx status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. -func (c *ProjectsLocationsVolumesReplicationsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ProjectsLocationsVolumesQuotaRulesCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7571,7 +7813,7 @@ func (c *ProjectsLocationsVolumesReplicationsCreateCall) Do(opts ...googleapi.Ca return ret, nil } -type ProjectsLocationsVolumesReplicationsDeleteCall struct { +type ProjectsLocationsVolumesQuotaRulesDeleteCall struct { s *Service name string urlParams_ gensupport.URLParams @@ -7579,12 +7821,11 @@ type ProjectsLocationsVolumesReplicationsDeleteCall struct { header_ http.Header } -// Delete: Deletes a replication. +// Delete: Deletes a quota rule. // -// - name: The replication resource name, in the format -// `projects/*/locations/*/volumes/*/replications/{replication_id}`. -func (r *ProjectsLocationsVolumesReplicationsService) Delete(name string) *ProjectsLocationsVolumesReplicationsDeleteCall { - c := &ProjectsLocationsVolumesReplicationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - name: Name of the quota rule. +func (r *ProjectsLocationsVolumesQuotaRulesService) Delete(name string) *ProjectsLocationsVolumesQuotaRulesDeleteCall { + c := &ProjectsLocationsVolumesQuotaRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } @@ -7592,27 +7833,27 @@ func (r *ProjectsLocationsVolumesReplicationsService) Delete(name string) *Proje // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsDeleteCall { +func (c *ProjectsLocationsVolumesQuotaRulesDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesQuotaRulesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsDeleteCall { +func (c *ProjectsLocationsVolumesQuotaRulesDeleteCall) Context(ctx context.Context) *ProjectsLocationsVolumesQuotaRulesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Header() http.Header { +func (c *ProjectsLocationsVolumesQuotaRulesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsLocationsVolumesReplicationsDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsLocationsVolumesQuotaRulesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) var body io.Reader = nil c.urlParams_.Set("alt", alt) @@ -7630,12 +7871,12 @@ func (c *ProjectsLocationsVolumesReplicationsDeleteCall) doRequest(alt string) ( return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "netapp.projects.locations.volumes.replications.delete" call. +// Do executes the "netapp.projects.locations.volumes.quotaRules.delete" call. // Any non-2xx status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. -func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ProjectsLocationsVolumesQuotaRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7667,7 +7908,7 @@ func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Do(opts ...googleapi.Ca return ret, nil } -type ProjectsLocationsVolumesReplicationsGetCall struct { +type ProjectsLocationsVolumesQuotaRulesGetCall struct { s *Service name string urlParams_ gensupport.URLParams @@ -7676,13 +7917,11 @@ type ProjectsLocationsVolumesReplicationsGetCall struct { header_ http.Header } -// Get: Describe a replication for a volume. +// Get: Returns details of the specified quota rule. // -// - name: The replication resource name, in the format -// `projects/{project_id}/locations/{location}/volumes/{volume_id}/replication -// s/{replication_id}`. -func (r *ProjectsLocationsVolumesReplicationsService) Get(name string) *ProjectsLocationsVolumesReplicationsGetCall { - c := &ProjectsLocationsVolumesReplicationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - name: Name of the quota rule. +func (r *ProjectsLocationsVolumesQuotaRulesService) Get(name string) *ProjectsLocationsVolumesQuotaRulesGetCall { + c := &ProjectsLocationsVolumesQuotaRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } @@ -7690,7 +7929,7 @@ func (r *ProjectsLocationsVolumesReplicationsService) Get(name string) *Projects // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsLocationsVolumesReplicationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsGetCall { +func (c *ProjectsLocationsVolumesQuotaRulesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesQuotaRulesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -7698,27 +7937,27 @@ func (c *ProjectsLocationsVolumesReplicationsGetCall) Fields(s ...googleapi.Fiel // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. -func (c *ProjectsLocationsVolumesReplicationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsVolumesReplicationsGetCall { +func (c *ProjectsLocationsVolumesQuotaRulesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsVolumesQuotaRulesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsLocationsVolumesReplicationsGetCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsGetCall { +func (c *ProjectsLocationsVolumesQuotaRulesGetCall) Context(ctx context.Context) *ProjectsLocationsVolumesQuotaRulesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsLocationsVolumesReplicationsGetCall) Header() http.Header { +func (c *ProjectsLocationsVolumesQuotaRulesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsLocationsVolumesReplicationsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsLocationsVolumesQuotaRulesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) @@ -7739,12 +7978,12 @@ func (c *ProjectsLocationsVolumesReplicationsGetCall) doRequest(alt string) (*ht return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "netapp.projects.locations.volumes.replications.get" call. +// Do executes the "netapp.projects.locations.volumes.quotaRules.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Replication.ServerResponse.Header or (if a response was returned at all) in +// *QuotaRule.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. -func (c *ProjectsLocationsVolumesReplicationsGetCall) Do(opts ...googleapi.CallOption) (*Replication, error) { +func (c *ProjectsLocationsVolumesQuotaRulesGetCall) Do(opts ...googleapi.CallOption) (*QuotaRule, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7763,7 +8002,7 @@ func (c *ProjectsLocationsVolumesReplicationsGetCall) Do(opts ...googleapi.CallO if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Replication{ + ret := &QuotaRule{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, @@ -7776,7 +8015,7 @@ func (c *ProjectsLocationsVolumesReplicationsGetCall) Do(opts ...googleapi.CallO return ret, nil } -type ProjectsLocationsVolumesReplicationsListCall struct { +type ProjectsLocationsVolumesQuotaRulesListCall struct { s *Service parent string urlParams_ gensupport.URLParams @@ -7785,39 +8024,39 @@ type ProjectsLocationsVolumesReplicationsListCall struct { header_ http.Header } -// List: Returns descriptions of all replications for a volume. +// List: Returns list of all quota rules in a location. // -// - parent: The volume for which to retrieve replication information, in the -// format `projects/{project_id}/locations/{location}/volumes/{volume_id}`. -func (r *ProjectsLocationsVolumesReplicationsService) List(parent string) *ProjectsLocationsVolumesReplicationsListCall { - c := &ProjectsLocationsVolumesReplicationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - parent: Parent value for ListQuotaRulesRequest. +func (r *ProjectsLocationsVolumesQuotaRulesService) List(parent string) *ProjectsLocationsVolumesQuotaRulesListCall { + c := &ProjectsLocationsVolumesQuotaRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent return c } -// Filter sets the optional parameter "filter": List filter. -func (c *ProjectsLocationsVolumesReplicationsListCall) Filter(filter string) *ProjectsLocationsVolumesReplicationsListCall { +// Filter sets the optional parameter "filter": Filtering results +func (c *ProjectsLocationsVolumesQuotaRulesListCall) Filter(filter string) *ProjectsLocationsVolumesQuotaRulesListCall { c.urlParams_.Set("filter", filter) return c } -// OrderBy sets the optional parameter "orderBy": Sort results. Supported -// values are "name", "name desc" or "" (unsorted). -func (c *ProjectsLocationsVolumesReplicationsListCall) OrderBy(orderBy string) *ProjectsLocationsVolumesReplicationsListCall { +// OrderBy sets the optional parameter "orderBy": Hint for how to order the +// results +func (c *ProjectsLocationsVolumesQuotaRulesListCall) OrderBy(orderBy string) *ProjectsLocationsVolumesQuotaRulesListCall { c.urlParams_.Set("orderBy", orderBy) return c } -// PageSize sets the optional parameter "pageSize": The maximum number of items -// to return. -func (c *ProjectsLocationsVolumesReplicationsListCall) PageSize(pageSize int64) *ProjectsLocationsVolumesReplicationsListCall { +// PageSize sets the optional parameter "pageSize": Requested page size. Server +// may return fewer items than requested. If unspecified, the server will pick +// an appropriate default. +func (c *ProjectsLocationsVolumesQuotaRulesListCall) PageSize(pageSize int64) *ProjectsLocationsVolumesQuotaRulesListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } -// PageToken sets the optional parameter "pageToken": The next_page_token value -// to use if there are additional results to retrieve for this list request. -func (c *ProjectsLocationsVolumesReplicationsListCall) PageToken(pageToken string) *ProjectsLocationsVolumesReplicationsListCall { +// PageToken sets the optional parameter "pageToken": A token identifying a +// page of results the server should return. +func (c *ProjectsLocationsVolumesQuotaRulesListCall) PageToken(pageToken string) *ProjectsLocationsVolumesQuotaRulesListCall { c.urlParams_.Set("pageToken", pageToken) return c } @@ -7825,7 +8064,7 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) PageToken(pageToken strin // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsLocationsVolumesReplicationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsListCall { +func (c *ProjectsLocationsVolumesQuotaRulesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesQuotaRulesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -7833,27 +8072,27 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) Fields(s ...googleapi.Fie // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. -func (c *ProjectsLocationsVolumesReplicationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsVolumesReplicationsListCall { +func (c *ProjectsLocationsVolumesQuotaRulesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsVolumesQuotaRulesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsLocationsVolumesReplicationsListCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsListCall { +func (c *ProjectsLocationsVolumesQuotaRulesListCall) Context(ctx context.Context) *ProjectsLocationsVolumesQuotaRulesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsLocationsVolumesReplicationsListCall) Header() http.Header { +func (c *ProjectsLocationsVolumesQuotaRulesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsLocationsVolumesReplicationsListCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsLocationsVolumesQuotaRulesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) @@ -7861,7 +8100,7 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) doRequest(alt string) (*h var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/replications") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/quotaRules") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { @@ -7874,13 +8113,13 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) doRequest(alt string) (*h return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "netapp.projects.locations.volumes.replications.list" call. +// Do executes the "netapp.projects.locations.volumes.quotaRules.list" call. // Any non-2xx status code is an error. Response headers are in either -// *ListReplicationsResponse.ServerResponse.Header or (if a response was -// returned at all) in error.(*googleapi.Error).Header. Use -// googleapi.IsNotModified to check whether the returned error was because -// http.StatusNotModified was returned. -func (c *ProjectsLocationsVolumesReplicationsListCall) Do(opts ...googleapi.CallOption) (*ListReplicationsResponse, error) { +// *ListQuotaRulesResponse.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified was +// returned. +func (c *ProjectsLocationsVolumesQuotaRulesListCall) Do(opts ...googleapi.CallOption) (*ListQuotaRulesResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7899,7 +8138,7 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) Do(opts ...googleapi.Call if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ListReplicationsResponse{ + ret := &ListQuotaRulesResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, @@ -7915,7 +8154,7 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) Do(opts ...googleapi.Call // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. -func (c *ProjectsLocationsVolumesReplicationsListCall) Pages(ctx context.Context, f func(*ListReplicationsResponse) error) error { +func (c *ProjectsLocationsVolumesQuotaRulesListCall) Pages(ctx context.Context, f func(*ListQuotaRulesResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -7933,30 +8172,34 @@ func (c *ProjectsLocationsVolumesReplicationsListCall) Pages(ctx context.Context } } -type ProjectsLocationsVolumesReplicationsPatchCall struct { - s *Service - name string - replication *Replication - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ProjectsLocationsVolumesQuotaRulesPatchCall struct { + s *Service + name string + quotarule *QuotaRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates the settings of a specific replication. +// Patch: Updates a quota rule. // -// - name: Identifier. The resource name of the Replication. Format: -// `projects/{project_id}/locations/{location}/volumes/{volume_id}/replication -// s/{replication_id}`. -func (r *ProjectsLocationsVolumesReplicationsService) Patch(name string, replication *Replication) *ProjectsLocationsVolumesReplicationsPatchCall { - c := &ProjectsLocationsVolumesReplicationsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - name: Identifier. The resource name of the active directory. Format: +// `projects/{project_number}/locations/{location_id}/quotaRules/{quota_rule_i +// d}`. +func (r *ProjectsLocationsVolumesQuotaRulesService) Patch(name string, quotarule *QuotaRule) *ProjectsLocationsVolumesQuotaRulesPatchCall { + c := &ProjectsLocationsVolumesQuotaRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name - c.replication = replication + c.quotarule = quotarule return c } -// UpdateMask sets the optional parameter "updateMask": Required. Mask of -// fields to update. At least one path must be supplied in this field. -func (c *ProjectsLocationsVolumesReplicationsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsVolumesReplicationsPatchCall { +// UpdateMask sets the optional parameter "updateMask": Field mask is used to +// specify the fields to be overwritten in the Quota Rule 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. +func (c *ProjectsLocationsVolumesQuotaRulesPatchCall) UpdateMask(updateMask string) *ProjectsLocationsVolumesQuotaRulesPatchCall { c.urlParams_.Set("updateMask", updateMask) return c } @@ -7964,30 +8207,30 @@ func (c *ProjectsLocationsVolumesReplicationsPatchCall) UpdateMask(updateMask st // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsLocationsVolumesReplicationsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsPatchCall { +func (c *ProjectsLocationsVolumesQuotaRulesPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesQuotaRulesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsLocationsVolumesReplicationsPatchCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsPatchCall { +func (c *ProjectsLocationsVolumesQuotaRulesPatchCall) Context(ctx context.Context) *ProjectsLocationsVolumesQuotaRulesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsLocationsVolumesReplicationsPatchCall) Header() http.Header { +func (c *ProjectsLocationsVolumesQuotaRulesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsLocationsVolumesReplicationsPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsLocationsVolumesQuotaRulesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.replication) + body, err := googleapi.WithoutDataWrapper.JSONReader(c.quotarule) if err != nil { return nil, err } @@ -8006,12 +8249,12 @@ func (c *ProjectsLocationsVolumesReplicationsPatchCall) doRequest(alt string) (* return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "netapp.projects.locations.volumes.replications.patch" call. +// Do executes the "netapp.projects.locations.volumes.quotaRules.patch" call. // Any non-2xx status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. -func (c *ProjectsLocationsVolumesReplicationsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ProjectsLocationsVolumesQuotaRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8043,8 +8286,694 @@ func (c *ProjectsLocationsVolumesReplicationsPatchCall) Do(opts ...googleapi.Cal return ret, nil } -type ProjectsLocationsVolumesReplicationsResumeCall struct { - s *Service +type ProjectsLocationsVolumesReplicationsCreateCall struct { + s *Service + parent string + replication *Replication + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Create: Create a new replication for a volume. +// +// - parent: The NetApp volume to create the replications of, in the format +// `projects/{project_id}/locations/{location}/volumes/{volume_id}`. +func (r *ProjectsLocationsVolumesReplicationsService) Create(parent string, replication *Replication) *ProjectsLocationsVolumesReplicationsCreateCall { + c := &ProjectsLocationsVolumesReplicationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.replication = replication + return c +} + +// ReplicationId sets the optional parameter "replicationId": Required. ID of +// the replication to create. Must be unique within the parent resource. Must +// contain only letters, numbers and hyphen, with the first character a letter, +// the last a letter or a number, and a 63 character maximum. +func (c *ProjectsLocationsVolumesReplicationsCreateCall) ReplicationId(replicationId string) *ProjectsLocationsVolumesReplicationsCreateCall { + c.urlParams_.Set("replicationId", replicationId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsCreateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsCreateCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsCreateCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsCreateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsCreateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.replication) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/replications") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.create" call. +// Any non-2xx status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +type ProjectsLocationsVolumesReplicationsDeleteCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes a replication. +// +// - name: The replication resource name, in the format +// `projects/*/locations/*/volumes/*/replications/{replication_id}`. +func (r *ProjectsLocationsVolumesReplicationsService) Delete(name string) *ProjectsLocationsVolumesReplicationsDeleteCall { + c := &ProjectsLocationsVolumesReplicationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.delete" call. +// Any non-2xx status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +type ProjectsLocationsVolumesReplicationsEstablishPeeringCall struct { + s *Service + name string + establishpeeringrequest *EstablishPeeringRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// EstablishPeering: Establish replication peering. +// +// - name: The resource name of the replication, in the format of +// projects/{project_id}/locations/{location}/volumes/{volume_id}/replications +// /{replication_id}. +func (r *ProjectsLocationsVolumesReplicationsService) EstablishPeering(name string, establishpeeringrequest *EstablishPeeringRequest) *ProjectsLocationsVolumesReplicationsEstablishPeeringCall { + c := &ProjectsLocationsVolumesReplicationsEstablishPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.establishpeeringrequest = establishpeeringrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsEstablishPeeringCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsEstablishPeeringCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsEstablishPeeringCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsEstablishPeeringCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsEstablishPeeringCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsEstablishPeeringCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.establishpeeringrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}:establishPeering") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.establishPeering" call. +// Any non-2xx status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsEstablishPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +type ProjectsLocationsVolumesReplicationsGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Describe a replication for a volume. +// +// - name: The replication resource name, in the format +// `projects/{project_id}/locations/{location}/volumes/{volume_id}/replication +// s/{replication_id}`. +func (r *ProjectsLocationsVolumesReplicationsService) Get(name string) *ProjectsLocationsVolumesReplicationsGetCall { + c := &ProjectsLocationsVolumesReplicationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an optional parameter which makes the operation fail if the +// object's ETag matches the given value. This is useful for getting updates +// only after the object has changed since the last request. +func (c *ProjectsLocationsVolumesReplicationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsVolumesReplicationsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsGetCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *Replication.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsGetCall) Do(opts ...googleapi.CallOption) (*Replication, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Replication{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +type ProjectsLocationsVolumesReplicationsListCall struct { + s *Service + parent string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Returns descriptions of all replications for a volume. +// +// - parent: The volume for which to retrieve replication information, in the +// format `projects/{project_id}/locations/{location}/volumes/{volume_id}`. +func (r *ProjectsLocationsVolumesReplicationsService) List(parent string) *ProjectsLocationsVolumesReplicationsListCall { + c := &ProjectsLocationsVolumesReplicationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + return c +} + +// Filter sets the optional parameter "filter": List filter. +func (c *ProjectsLocationsVolumesReplicationsListCall) Filter(filter string) *ProjectsLocationsVolumesReplicationsListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// OrderBy sets the optional parameter "orderBy": Sort results. Supported +// values are "name", "name desc" or "" (unsorted). +func (c *ProjectsLocationsVolumesReplicationsListCall) OrderBy(orderBy string) *ProjectsLocationsVolumesReplicationsListCall { + c.urlParams_.Set("orderBy", orderBy) + return c +} + +// PageSize sets the optional parameter "pageSize": The maximum number of items +// to return. +func (c *ProjectsLocationsVolumesReplicationsListCall) PageSize(pageSize int64) *ProjectsLocationsVolumesReplicationsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": The next_page_token value +// to use if there are additional results to retrieve for this list request. +func (c *ProjectsLocationsVolumesReplicationsListCall) PageToken(pageToken string) *ProjectsLocationsVolumesReplicationsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an optional parameter which makes the operation fail if the +// object's ETag matches the given value. This is useful for getting updates +// only after the object has changed since the last request. +func (c *ProjectsLocationsVolumesReplicationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsVolumesReplicationsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsListCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/replications") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *ListReplicationsResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsListCall) Do(opts ...googleapi.CallOption) (*ListReplicationsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &ListReplicationsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *ProjectsLocationsVolumesReplicationsListCall) Pages(ctx context.Context, f func(*ListReplicationsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +type ProjectsLocationsVolumesReplicationsPatchCall struct { + s *Service + name string + replication *Replication + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates the settings of a specific replication. +// +// - name: Identifier. The resource name of the Replication. Format: +// `projects/{project_id}/locations/{location}/volumes/{volume_id}/replication +// s/{replication_id}`. +func (r *ProjectsLocationsVolumesReplicationsService) Patch(name string, replication *Replication) *ProjectsLocationsVolumesReplicationsPatchCall { + c := &ProjectsLocationsVolumesReplicationsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.replication = replication + return c +} + +// UpdateMask sets the optional parameter "updateMask": Required. Mask of +// fields to update. At least one path must be supplied in this field. +func (c *ProjectsLocationsVolumesReplicationsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsVolumesReplicationsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsPatchCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.replication) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.patch" call. +// Any non-2xx status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +type ProjectsLocationsVolumesReplicationsResumeCall struct { + s *Service name string resumereplicationrequest *ResumeReplicationRequest urlParams_ gensupport.URLParams @@ -8353,6 +9282,110 @@ func (c *ProjectsLocationsVolumesReplicationsStopCall) Do(opts ...googleapi.Call return ret, nil } +type ProjectsLocationsVolumesReplicationsSyncCall struct { + s *Service + name string + syncreplicationrequest *SyncReplicationRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Sync: Syncs the replication. This will invoke one time volume data transfer +// from source to destination. +// +// - name: The resource name of the replication, in the format of +// projects/{project_id}/locations/{location}/volumes/{volume_id}/replications +// /{replication_id}. +func (r *ProjectsLocationsVolumesReplicationsService) Sync(name string, syncreplicationrequest *SyncReplicationRequest) *ProjectsLocationsVolumesReplicationsSyncCall { + c := &ProjectsLocationsVolumesReplicationsSyncCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.syncreplicationrequest = syncreplicationrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsVolumesReplicationsSyncCall) Fields(s ...googleapi.Field) *ProjectsLocationsVolumesReplicationsSyncCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsVolumesReplicationsSyncCall) Context(ctx context.Context) *ProjectsLocationsVolumesReplicationsSyncCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsVolumesReplicationsSyncCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsVolumesReplicationsSyncCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.syncreplicationrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}:sync") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "netapp.projects.locations.volumes.replications.sync" call. +// Any non-2xx status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsVolumesReplicationsSyncCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + type ProjectsLocationsVolumesSnapshotsCreateCall struct { s *Service parent string diff --git a/networksecurity/v1/networksecurity-api.json b/networksecurity/v1/networksecurity-api.json index 4b4c6c9f1b..c0cb188117 100644 --- a/networksecurity/v1/networksecurity-api.json +++ b/networksecurity/v1/networksecurity-api.json @@ -1731,6 +1731,99 @@ }, "authzPolicies": { "methods": { + "create": { + "description": "Creates a new AuthzPolicy in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/authzPolicies", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.authzPolicies.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "authzPolicyId": { + "description": "Required. User-provided ID of the `AuthzPolicy` resource to be created.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the `AuthzPolicy` resource. Must be in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/authzPolicies", + "request": { + "$ref": "AuthzPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single AuthzPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/authzPolicies/{authzPoliciesId}", + "httpMethod": "DELETE", + "id": "networksecurity.projects.locations.authzPolicies.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the `AuthzPolicy` resource to delete. Must be in the format `projects/{project}/locations/{location}/authzPolicies/{authz_policy}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/authzPolicies/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single AuthzPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/authzPolicies/{authzPoliciesId}", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.authzPolicies.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the `AuthzPolicy` resource to get. Must be in the format `projects/{project}/locations/{location}/authzPolicies/{authz_policy}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/authzPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "AuthzPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getIamPolicy": { "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/authzPolicies/{authzPoliciesId}:getIamPolicy", @@ -1762,6 +1855,91 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists AuthzPolicies in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/authzPolicies", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.authzPolicies.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Hint for how to order the results.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. The server might return fewer items than requested. If unspecified, the server picks an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results that the server returns.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the `AuthzPolicy` resources are listed, specified in the following format: `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/authzPolicies", + "response": { + "$ref": "ListAuthzPoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single AuthzPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/authzPolicies/{authzPoliciesId}", + "httpMethod": "PATCH", + "id": "networksecurity.projects.locations.authzPolicies.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Identifier. Name of the `AuthzPolicy` resource in the following format: `projects/{project}/locations/{location}/authzPolicies/{authz_policy}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/authzPolicies/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. Used to specify the fields to be overwritten in the `AuthzPolicy` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "AuthzPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "setIamPolicy": { "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/authzPolicies/{authzPoliciesId}:setIamPolicy", @@ -3253,7 +3431,7 @@ } } }, - "revision": "20240919", + "revision": "20241109", "rootUrl": "https://networksecurity.googleapis.com/", "schemas": { "AddAddressGroupItemsRequest": { @@ -3411,6 +3589,336 @@ }, "type": "object" }, + "AuthzPolicy": { + "description": "`AuthzPolicy` is a resource that allows to forward traffic to a callout backend designed to scan the traffic for security purposes.", + "id": "AuthzPolicy", + "properties": { + "action": { + "description": "Required. Can be one of `ALLOW`, `DENY`, `CUSTOM`. When the action is `CUSTOM`, `customProvider` must be specified. When the action is `ALLOW`, only requests matching the policy will be allowed. When the action is `DENY`, only requests matching the policy will be denied. When a request arrives, the policies are evaluated in the following order: 1. If there is a `CUSTOM` policy that matches the request, the `CUSTOM` policy is evaluated using the custom authorization providers and the request is denied if the provider rejects the request. 2. If there are any `DENY` policies that match the request, the request is denied. 3. If there are no `ALLOW` policies for the resource or if any of the `ALLOW` policies match the request, the request is allowed. 4. Else the request is denied by default if none of the configured AuthzPolicies with `ALLOW` action match the request.", + "enum": [ + "AUTHZ_ACTION_UNSPECIFIED", + "ALLOW", + "DENY", + "CUSTOM" + ], + "enumDescriptions": [ + "Unspecified action.", + "Allow request to pass through to the backend.", + "Deny the request and return a HTTP 404 to the client.", + "Delegate the authorization decision to an external authorization engine." + ], + "type": "string" + }, + "createTime": { + "description": "Output only. The timestamp when the resource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "customProvider": { + "$ref": "AuthzPolicyCustomProvider", + "description": "Optional. Required if the action is `CUSTOM`. Allows delegating authorization decisions to Cloud IAP or to Service Extensions. One of `cloudIap` or `authzExtension` must be specified." + }, + "description": { + "description": "Optional. A human-readable description of the resource.", + "type": "string" + }, + "httpRules": { + "description": "Optional. A list of authorization HTTP rules to match against the incoming request. A policy match occurs when at least one HTTP rule matches the request or when no HTTP rules are specified in the policy. At least one HTTP Rule is required for Allow or Deny Action. Limited to 5 rules.", + "items": { + "$ref": "AuthzPolicyAuthzRule" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of labels associated with the `AuthzPolicy` resource. The format must comply with [the following requirements](/compute/docs/labeling-resources#requirements).", + "type": "object" + }, + "name": { + "description": "Required. Identifier. Name of the `AuthzPolicy` resource in the following format: `projects/{project}/locations/{location}/authzPolicies/{authz_policy}`.", + "type": "string" + }, + "target": { + "$ref": "AuthzPolicyTarget", + "description": "Required. Specifies the set of resources to which this policy should be applied to." + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "AuthzPolicyAuthzRule": { + "description": "Conditions to match against the incoming request.", + "id": "AuthzPolicyAuthzRule", + "properties": { + "from": { + "$ref": "AuthzPolicyAuthzRuleFrom", + "description": "Optional. Describes properties of one or more sources of a request." + }, + "to": { + "$ref": "AuthzPolicyAuthzRuleTo", + "description": "Optional. Describes properties of one or more targets of a request." + }, + "when": { + "description": "Optional. CEL expression that describes the conditions to be satisfied for the action. The result of the CEL expression is ANDed with the from and to. Refer to the CEL language reference for a list of available attributes.", + "type": "string" + } + }, + "type": "object" + }, + "AuthzPolicyAuthzRuleFrom": { + "description": "Describes properties of one or more sources of a request.", + "id": "AuthzPolicyAuthzRuleFrom", + "properties": { + "notSources": { + "description": "Optional. Describes the negated properties of request sources. Matches requests from sources that do not match the criteria specified in this field. At least one of sources or notSources must be specified.", + "items": { + "$ref": "AuthzPolicyAuthzRuleFromRequestSource" + }, + "type": "array" + }, + "sources": { + "description": "Optional. Describes the properties of a request's sources. At least one of sources or notSources must be specified. Limited to 5 sources. A match occurs when ANY source (in sources or notSources) matches the request. Within a single source, the match follows AND semantics across fields and OR semantics within a single field, i.e. a match occurs when ANY principal matches AND ANY ipBlocks match.", + "items": { + "$ref": "AuthzPolicyAuthzRuleFromRequestSource" + }, + "type": "array" + } + }, + "type": "object" + }, + "AuthzPolicyAuthzRuleFromRequestSource": { + "description": "Describes the properties of a single source.", + "id": "AuthzPolicyAuthzRuleFromRequestSource", + "properties": { + "principals": { + "description": "Optional. A list of identities derived from the client's certificate. This field will not match on a request unless mutual TLS is enabled for the Forwarding rule or Gateway. Each identity is a string whose value is matched against the URI SAN, or DNS SAN or the subject field in the client's certificate. The match can be exact, prefix, suffix or a substring match. One of exact, prefix, suffix or contains must be specified. Limited to 5 principals.", + "items": { + "$ref": "AuthzPolicyAuthzRuleStringMatch" + }, + "type": "array" + }, + "resources": { + "description": "Optional. A list of resources to match against the resource of the source VM of a request. Limited to 5 resources.", + "items": { + "$ref": "AuthzPolicyAuthzRuleRequestResource" + }, + "type": "array" + } + }, + "type": "object" + }, + "AuthzPolicyAuthzRuleHeaderMatch": { + "description": "Determines how a HTTP header should be matched.", + "id": "AuthzPolicyAuthzRuleHeaderMatch", + "properties": { + "name": { + "description": "Optional. Specifies the name of the header in the request.", + "type": "string" + }, + "value": { + "$ref": "AuthzPolicyAuthzRuleStringMatch", + "description": "Optional. Specifies how the header match will be performed." + } + }, + "type": "object" + }, + "AuthzPolicyAuthzRuleRequestResource": { + "description": "Describes the properties of a client VM resource accessing the internal application load balancers.", + "id": "AuthzPolicyAuthzRuleRequestResource", + "properties": { + "iamServiceAccount": { + "$ref": "AuthzPolicyAuthzRuleStringMatch", + "description": "Optional. An IAM service account to match against the source service account of the VM sending the request." + }, + "tagValueIdSet": { + "$ref": "AuthzPolicyAuthzRuleRequestResourceTagValueIdSet", + "description": "Optional. A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request." + } + }, + "type": "object" + }, + "AuthzPolicyAuthzRuleRequestResourceTagValueIdSet": { + "description": "Describes a set of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request.", + "id": "AuthzPolicyAuthzRuleRequestResourceTagValueIdSet", + "properties": { + "ids": { + "description": "Required. A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request. The match follows AND semantics which means all the ids must match. Limited to 5 matches.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AuthzPolicyAuthzRuleStringMatch": { + "description": "Determines how a string value should be matched.", + "id": "AuthzPolicyAuthzRuleStringMatch", + "properties": { + "contains": { + "description": "The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead. Examples: * ``abc`` matches the value ``xyz.abc.def``", + "type": "string" + }, + "exact": { + "description": "The input string must match exactly the string specified here. Examples: * ``abc`` only matches the value ``abc``.", + "type": "string" + }, + "ignoreCase": { + "description": "If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher ``data`` will match both input string ``Data`` and ``data`` if set to true.", + "type": "boolean" + }, + "prefix": { + "description": "The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead. Examples: * ``abc`` matches the value ``abc.xyz``", + "type": "string" + }, + "suffix": { + "description": "The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead. Examples: * ``abc`` matches the value ``xyz.abc``", + "type": "string" + } + }, + "type": "object" + }, + "AuthzPolicyAuthzRuleTo": { + "description": "Describes properties of one or more targets of a request.", + "id": "AuthzPolicyAuthzRuleTo", + "properties": { + "notOperations": { + "description": "Optional. Describes the negated properties of the targets of a request. Matches requests for operations that do not match the criteria specified in this field. At least one of operations or notOperations must be specified.", + "items": { + "$ref": "AuthzPolicyAuthzRuleToRequestOperation" + }, + "type": "array" + }, + "operations": { + "description": "Optional. Describes properties of one or more targets of a request. At least one of operations or notOperations must be specified. Limited to 5 operations. A match occurs when ANY operation (in operations or notOperations) matches. Within an operation, the match follows AND semantics across fields and OR semantics within a field, i.e. a match occurs when ANY path matches AND ANY header matches and ANY method matches.", + "items": { + "$ref": "AuthzPolicyAuthzRuleToRequestOperation" + }, + "type": "array" + } + }, + "type": "object" + }, + "AuthzPolicyAuthzRuleToRequestOperation": { + "description": "Describes properties of one or more targets of a request.", + "id": "AuthzPolicyAuthzRuleToRequestOperation", + "properties": { + "headerSet": { + "$ref": "AuthzPolicyAuthzRuleToRequestOperationHeaderSet", + "description": "Optional. A list of headers to match against in http header." + }, + "hosts": { + "description": "Optional. A list of HTTP Hosts to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches.", + "items": { + "$ref": "AuthzPolicyAuthzRuleStringMatch" + }, + "type": "array" + }, + "methods": { + "description": "Optional. A list of HTTP methods to match against. Each entry must be a valid HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). It only allows exact match and is always case sensitive.", + "items": { + "type": "string" + }, + "type": "array" + }, + "paths": { + "description": "Optional. A list of paths to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches. Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.", + "items": { + "$ref": "AuthzPolicyAuthzRuleStringMatch" + }, + "type": "array" + } + }, + "type": "object" + }, + "AuthzPolicyAuthzRuleToRequestOperationHeaderSet": { + "description": "Describes a set of HTTP headers to match against.", + "id": "AuthzPolicyAuthzRuleToRequestOperationHeaderSet", + "properties": { + "headers": { + "description": "Required. A list of headers to match against in http header. The match can be one of exact, prefix, suffix, or contains (substring match). The match follows AND semantics which means all the headers must match. Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches.", + "items": { + "$ref": "AuthzPolicyAuthzRuleHeaderMatch" + }, + "type": "array" + } + }, + "type": "object" + }, + "AuthzPolicyCustomProvider": { + "description": "Allows delegating authorization decisions to Cloud IAP or to Service Extensions.", + "id": "AuthzPolicyCustomProvider", + "properties": { + "authzExtension": { + "$ref": "AuthzPolicyCustomProviderAuthzExtension", + "description": "Optional. Delegate authorization decision to user authored Service Extension. Only one of cloudIap or authzExtension can be specified." + }, + "cloudIap": { + "$ref": "AuthzPolicyCustomProviderCloudIap", + "description": "Optional. Delegates authorization decisions to Cloud IAP. Applicable only for managed load balancers. Enabling Cloud IAP at the AuthzPolicy level is not compatible with Cloud IAP settings in the BackendService. Enabling IAP in both places will result in request failure. Ensure that IAP is enabled in either the AuthzPolicy or the BackendService but not in both places." + } + }, + "type": "object" + }, + "AuthzPolicyCustomProviderAuthzExtension": { + "description": "Optional. Delegate authorization decision to user authored extension. Only one of cloudIap or authzExtension can be specified.", + "id": "AuthzPolicyCustomProviderAuthzExtension", + "properties": { + "resources": { + "description": "Required. A list of references to authorization extensions that will be invoked for requests matching this policy. Limited to 1 custom provider.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AuthzPolicyCustomProviderCloudIap": { + "description": "Optional. Delegates authorization decisions to Cloud IAP. Applicable only for managed load balancers. Enabling Cloud IAP at the AuthzPolicy level is not compatible with Cloud IAP settings in the BackendService. Enabling IAP in both places will result in request failure. Ensure that IAP is enabled in either the AuthzPolicy or the BackendService but not in both places.", + "id": "AuthzPolicyCustomProviderCloudIap", + "properties": {}, + "type": "object" + }, + "AuthzPolicyTarget": { + "description": "Specifies the set of targets to which this policy should be applied to.", + "id": "AuthzPolicyTarget", + "properties": { + "loadBalancingScheme": { + "description": "Required. All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme. Supported values: `INTERNAL_MANAGED` and `EXTERNAL_MANAGED`. For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).", + "enum": [ + "LOAD_BALANCING_SCHEME_UNSPECIFIED", + "INTERNAL_MANAGED", + "EXTERNAL_MANAGED", + "INTERNAL_SELF_MANAGED" + ], + "enumDescriptions": [ + "Default value. Do not use.", + "Signifies that this is used for Regional internal or Cross-region internal Application Load Balancing.", + "Signifies that this is used for Global external or Regional external Application Load Balancing.", + "Signifies that this is used for Cloud Service Mesh. Meant for use by CSM GKE controller only." + ], + "type": "string" + }, + "resources": { + "description": "Required. A list of references to the Forwarding Rules on which this policy will be applied.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "CancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "CancelOperationRequest", @@ -3698,7 +4206,7 @@ "Active and ready for traffic.", "Being deleted.", "Down or in an error state.", - "The GCP project that housed the association has been deleted." + "The project that housed the association has been deleted." ], "readOnly": true, "type": "string" @@ -4086,6 +4594,31 @@ }, "type": "object" }, + "ListAuthzPoliciesResponse": { + "description": "Message for response to listing `AuthzPolicy` resources.", + "id": "ListAuthzPoliciesResponse", + "properties": { + "authzPolicies": { + "description": "The list of `AuthzPolicy` resources.", + "items": { + "$ref": "AuthzPolicy" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token identifying a page of results that the server returns.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListClientTlsPoliciesResponse": { "description": "Response returned by the ListClientTlsPolicies method.", "id": "ListClientTlsPoliciesResponse", diff --git a/networksecurity/v1/networksecurity-gen.go b/networksecurity/v1/networksecurity-gen.go index fbefe6e4ba..14f8ac4bb0 100644 --- a/networksecurity/v1/networksecurity-gen.go +++ b/networksecurity/v1/networksecurity-gen.go @@ -537,6 +537,490 @@ func (s AuthorizationPolicy) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } +// AuthzPolicy: `AuthzPolicy` is a resource that allows to forward traffic to a +// callout backend designed to scan the traffic for security purposes. +type AuthzPolicy struct { + // Action: Required. Can be one of `ALLOW`, `DENY`, `CUSTOM`. When the action + // is `CUSTOM`, `customProvider` must be specified. When the action is `ALLOW`, + // only requests matching the policy will be allowed. When the action is + // `DENY`, only requests matching the policy will be denied. When a request + // arrives, the policies are evaluated in the following order: 1. If there is a + // `CUSTOM` policy that matches the request, the `CUSTOM` policy is evaluated + // using the custom authorization providers and the request is denied if the + // provider rejects the request. 2. If there are any `DENY` policies that match + // the request, the request is denied. 3. If there are no `ALLOW` policies for + // the resource or if any of the `ALLOW` policies match the request, the + // request is allowed. 4. Else the request is denied by default if none of the + // configured AuthzPolicies with `ALLOW` action match the request. + // + // Possible values: + // "AUTHZ_ACTION_UNSPECIFIED" - Unspecified action. + // "ALLOW" - Allow request to pass through to the backend. + // "DENY" - Deny the request and return a HTTP 404 to the client. + // "CUSTOM" - Delegate the authorization decision to an external + // authorization engine. + Action string `json:"action,omitempty"` + // CreateTime: Output only. The timestamp when the resource was created. + CreateTime string `json:"createTime,omitempty"` + // CustomProvider: Optional. Required if the action is `CUSTOM`. Allows + // delegating authorization decisions to Cloud IAP or to Service Extensions. + // One of `cloudIap` or `authzExtension` must be specified. + CustomProvider *AuthzPolicyCustomProvider `json:"customProvider,omitempty"` + // Description: Optional. A human-readable description of the resource. + Description string `json:"description,omitempty"` + // HttpRules: Optional. A list of authorization HTTP rules to match against the + // incoming request. A policy match occurs when at least one HTTP rule matches + // the request or when no HTTP rules are specified in the policy. At least one + // HTTP Rule is required for Allow or Deny Action. Limited to 5 rules. + HttpRules []*AuthzPolicyAuthzRule `json:"httpRules,omitempty"` + // Labels: Optional. Set of labels associated with the `AuthzPolicy` resource. + // The format must comply with the following requirements + // (/compute/docs/labeling-resources#requirements). + Labels map[string]string `json:"labels,omitempty"` + // Name: Required. Identifier. Name of the `AuthzPolicy` resource in the + // following format: + // `projects/{project}/locations/{location}/authzPolicies/{authz_policy}`. + Name string `json:"name,omitempty"` + // Target: Required. Specifies the set of resources to which this policy should + // be applied to. + Target *AuthzPolicyTarget `json:"target,omitempty"` + // UpdateTime: Output only. The timestamp when the resource was updated. + UpdateTime string `json:"updateTime,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Action") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Action") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicy) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuthzPolicyAuthzRule: Conditions to match against the incoming request. +type AuthzPolicyAuthzRule struct { + // From: Optional. Describes properties of one or more sources of a request. + From *AuthzPolicyAuthzRuleFrom `json:"from,omitempty"` + // To: Optional. Describes properties of one or more targets of a request. + To *AuthzPolicyAuthzRuleTo `json:"to,omitempty"` + // When: Optional. CEL expression that describes the conditions to be satisfied + // for the action. The result of the CEL expression is ANDed with the from and + // to. Refer to the CEL language reference for a list of available attributes. + When string `json:"when,omitempty"` + // ForceSendFields is a list of field names (e.g. "From") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "From") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicyAuthzRule) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicyAuthzRule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuthzPolicyAuthzRuleFrom: Describes properties of one or more sources of a +// request. +type AuthzPolicyAuthzRuleFrom struct { + // NotSources: Optional. Describes the negated properties of request sources. + // Matches requests from sources that do not match the criteria specified in + // this field. At least one of sources or notSources must be specified. + NotSources []*AuthzPolicyAuthzRuleFromRequestSource `json:"notSources,omitempty"` + // Sources: Optional. Describes the properties of a request's sources. At least + // one of sources or notSources must be specified. Limited to 5 sources. A + // match occurs when ANY source (in sources or notSources) matches the request. + // Within a single source, the match follows AND semantics across fields and OR + // semantics within a single field, i.e. a match occurs when ANY principal + // matches AND ANY ipBlocks match. + Sources []*AuthzPolicyAuthzRuleFromRequestSource `json:"sources,omitempty"` + // ForceSendFields is a list of field names (e.g. "NotSources") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NotSources") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicyAuthzRuleFrom) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicyAuthzRuleFrom + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuthzPolicyAuthzRuleFromRequestSource: Describes the properties of a single +// source. +type AuthzPolicyAuthzRuleFromRequestSource struct { + // Principals: Optional. A list of identities derived from the client's + // certificate. This field will not match on a request unless mutual TLS is + // enabled for the Forwarding rule or Gateway. Each identity is a string whose + // value is matched against the URI SAN, or DNS SAN or the subject field in the + // client's certificate. The match can be exact, prefix, suffix or a substring + // match. One of exact, prefix, suffix or contains must be specified. Limited + // to 5 principals. + Principals []*AuthzPolicyAuthzRuleStringMatch `json:"principals,omitempty"` + // Resources: Optional. A list of resources to match against the resource of + // the source VM of a request. Limited to 5 resources. + Resources []*AuthzPolicyAuthzRuleRequestResource `json:"resources,omitempty"` + // ForceSendFields is a list of field names (e.g. "Principals") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Principals") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicyAuthzRuleFromRequestSource) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicyAuthzRuleFromRequestSource + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuthzPolicyAuthzRuleHeaderMatch: Determines how a HTTP header should be +// matched. +type AuthzPolicyAuthzRuleHeaderMatch struct { + // Name: Optional. Specifies the name of the header in the request. + Name string `json:"name,omitempty"` + // Value: Optional. Specifies how the header match will be performed. + Value *AuthzPolicyAuthzRuleStringMatch `json:"value,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicyAuthzRuleHeaderMatch) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicyAuthzRuleHeaderMatch + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuthzPolicyAuthzRuleRequestResource: Describes the properties of a client VM +// resource accessing the internal application load balancers. +type AuthzPolicyAuthzRuleRequestResource struct { + // IamServiceAccount: Optional. An IAM service account to match against the + // source service account of the VM sending the request. + IamServiceAccount *AuthzPolicyAuthzRuleStringMatch `json:"iamServiceAccount,omitempty"` + // TagValueIdSet: Optional. A list of resource tag value permanent IDs to match + // against the resource manager tags value associated with the source VM of a + // request. + TagValueIdSet *AuthzPolicyAuthzRuleRequestResourceTagValueIdSet `json:"tagValueIdSet,omitempty"` + // ForceSendFields is a list of field names (e.g. "IamServiceAccount") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "IamServiceAccount") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicyAuthzRuleRequestResource) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicyAuthzRuleRequestResource + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuthzPolicyAuthzRuleRequestResourceTagValueIdSet: Describes a set of +// resource tag value permanent IDs to match against the resource manager tags +// value associated with the source VM of a request. +type AuthzPolicyAuthzRuleRequestResourceTagValueIdSet struct { + // Ids: Required. A list of resource tag value permanent IDs to match against + // the resource manager tags value associated with the source VM of a request. + // The match follows AND semantics which means all the ids must match. Limited + // to 5 matches. + Ids googleapi.Int64s `json:"ids,omitempty"` + // ForceSendFields is a list of field names (e.g. "Ids") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Ids") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicyAuthzRuleRequestResourceTagValueIdSet) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicyAuthzRuleRequestResourceTagValueIdSet + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuthzPolicyAuthzRuleStringMatch: Determines how a string value should be +// matched. +type AuthzPolicyAuthzRuleStringMatch struct { + // Contains: The input string must have the substring specified here. Note: + // empty contains match is not allowed, please use regex instead. Examples: * + // ``abc`` matches the value ``xyz.abc.def`` + Contains string `json:"contains,omitempty"` + // Exact: The input string must match exactly the string specified here. + // Examples: * ``abc`` only matches the value ``abc``. + Exact string `json:"exact,omitempty"` + // IgnoreCase: If true, indicates the exact/prefix/suffix/contains matching + // should be case insensitive. For example, the matcher ``data`` will match + // both input string ``Data`` and ``data`` if set to true. + IgnoreCase bool `json:"ignoreCase,omitempty"` + // Prefix: The input string must have the prefix specified here. Note: empty + // prefix is not allowed, please use regex instead. Examples: * ``abc`` matches + // the value ``abc.xyz`` + Prefix string `json:"prefix,omitempty"` + // Suffix: The input string must have the suffix specified here. Note: empty + // prefix is not allowed, please use regex instead. Examples: * ``abc`` matches + // the value ``xyz.abc`` + Suffix string `json:"suffix,omitempty"` + // ForceSendFields is a list of field names (e.g. "Contains") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Contains") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicyAuthzRuleStringMatch) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicyAuthzRuleStringMatch + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuthzPolicyAuthzRuleTo: Describes properties of one or more targets of a +// request. +type AuthzPolicyAuthzRuleTo struct { + // NotOperations: Optional. Describes the negated properties of the targets of + // a request. Matches requests for operations that do not match the criteria + // specified in this field. At least one of operations or notOperations must be + // specified. + NotOperations []*AuthzPolicyAuthzRuleToRequestOperation `json:"notOperations,omitempty"` + // Operations: Optional. Describes properties of one or more targets of a + // request. At least one of operations or notOperations must be specified. + // Limited to 5 operations. A match occurs when ANY operation (in operations or + // notOperations) matches. Within an operation, the match follows AND semantics + // across fields and OR semantics within a field, i.e. a match occurs when ANY + // path matches AND ANY header matches and ANY method matches. + Operations []*AuthzPolicyAuthzRuleToRequestOperation `json:"operations,omitempty"` + // ForceSendFields is a list of field names (e.g. "NotOperations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NotOperations") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicyAuthzRuleTo) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicyAuthzRuleTo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuthzPolicyAuthzRuleToRequestOperation: Describes properties of one or more +// targets of a request. +type AuthzPolicyAuthzRuleToRequestOperation struct { + // HeaderSet: Optional. A list of headers to match against in http header. + HeaderSet *AuthzPolicyAuthzRuleToRequestOperationHeaderSet `json:"headerSet,omitempty"` + // Hosts: Optional. A list of HTTP Hosts to match against. The match can be one + // of exact, prefix, suffix, or contains (substring match). Matches are always + // case sensitive unless the ignoreCase is set. Limited to 5 matches. + Hosts []*AuthzPolicyAuthzRuleStringMatch `json:"hosts,omitempty"` + // Methods: Optional. A list of HTTP methods to match against. Each entry must + // be a valid HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). + // It only allows exact match and is always case sensitive. + Methods []string `json:"methods,omitempty"` + // Paths: Optional. A list of paths to match against. The match can be one of + // exact, prefix, suffix, or contains (substring match). Matches are always + // case sensitive unless the ignoreCase is set. Limited to 5 matches. Note that + // this path match includes the query parameters. For gRPC services, this + // should be a fully-qualified name of the form /package.service/method. + Paths []*AuthzPolicyAuthzRuleStringMatch `json:"paths,omitempty"` + // ForceSendFields is a list of field names (e.g. "HeaderSet") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "HeaderSet") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicyAuthzRuleToRequestOperation) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicyAuthzRuleToRequestOperation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuthzPolicyAuthzRuleToRequestOperationHeaderSet: Describes a set of HTTP +// headers to match against. +type AuthzPolicyAuthzRuleToRequestOperationHeaderSet struct { + // Headers: Required. A list of headers to match against in http header. The + // match can be one of exact, prefix, suffix, or contains (substring match). + // The match follows AND semantics which means all the headers must match. + // Matches are always case sensitive unless the ignoreCase is set. Limited to 5 + // matches. + Headers []*AuthzPolicyAuthzRuleHeaderMatch `json:"headers,omitempty"` + // ForceSendFields is a list of field names (e.g. "Headers") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Headers") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicyAuthzRuleToRequestOperationHeaderSet) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicyAuthzRuleToRequestOperationHeaderSet + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuthzPolicyCustomProvider: Allows delegating authorization decisions to +// Cloud IAP or to Service Extensions. +type AuthzPolicyCustomProvider struct { + // AuthzExtension: Optional. Delegate authorization decision to user authored + // Service Extension. Only one of cloudIap or authzExtension can be specified. + AuthzExtension *AuthzPolicyCustomProviderAuthzExtension `json:"authzExtension,omitempty"` + // CloudIap: Optional. Delegates authorization decisions to Cloud IAP. + // Applicable only for managed load balancers. Enabling Cloud IAP at the + // AuthzPolicy level is not compatible with Cloud IAP settings in the + // BackendService. Enabling IAP in both places will result in request failure. + // Ensure that IAP is enabled in either the AuthzPolicy or the BackendService + // but not in both places. + CloudIap *AuthzPolicyCustomProviderCloudIap `json:"cloudIap,omitempty"` + // ForceSendFields is a list of field names (e.g. "AuthzExtension") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AuthzExtension") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicyCustomProvider) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicyCustomProvider + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuthzPolicyCustomProviderAuthzExtension: Optional. Delegate authorization +// decision to user authored extension. Only one of cloudIap or authzExtension +// can be specified. +type AuthzPolicyCustomProviderAuthzExtension struct { + // Resources: Required. A list of references to authorization extensions that + // will be invoked for requests matching this policy. Limited to 1 custom + // provider. + Resources []string `json:"resources,omitempty"` + // ForceSendFields is a list of field names (e.g. "Resources") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Resources") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicyCustomProviderAuthzExtension) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicyCustomProviderAuthzExtension + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuthzPolicyCustomProviderCloudIap: Optional. Delegates authorization +// decisions to Cloud IAP. Applicable only for managed load balancers. Enabling +// Cloud IAP at the AuthzPolicy level is not compatible with Cloud IAP settings +// in the BackendService. Enabling IAP in both places will result in request +// failure. Ensure that IAP is enabled in either the AuthzPolicy or the +// BackendService but not in both places. +type AuthzPolicyCustomProviderCloudIap struct { +} + +// AuthzPolicyTarget: Specifies the set of targets to which this policy should +// be applied to. +type AuthzPolicyTarget struct { + // LoadBalancingScheme: Required. All gateways and forwarding rules referenced + // by this policy and extensions must share the same load balancing scheme. + // Supported values: `INTERNAL_MANAGED` and `EXTERNAL_MANAGED`. For more + // information, refer to Backend services overview + // (https://cloud.google.com/load-balancing/docs/backend-service). + // + // Possible values: + // "LOAD_BALANCING_SCHEME_UNSPECIFIED" - Default value. Do not use. + // "INTERNAL_MANAGED" - Signifies that this is used for Regional internal or + // Cross-region internal Application Load Balancing. + // "EXTERNAL_MANAGED" - Signifies that this is used for Global external or + // Regional external Application Load Balancing. + // "INTERNAL_SELF_MANAGED" - Signifies that this is used for Cloud Service + // Mesh. Meant for use by CSM GKE controller only. + LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"` + // Resources: Required. A list of references to the Forwarding Rules on which + // this policy will be applied. + Resources []string `json:"resources,omitempty"` + // ForceSendFields is a list of field names (e.g. "LoadBalancingScheme") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "LoadBalancingScheme") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AuthzPolicyTarget) MarshalJSON() ([]byte, error) { + type NoMethod AuthzPolicyTarget + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + // CancelOperationRequest: The request message for Operations.CancelOperation. type CancelOperationRequest struct { } @@ -856,7 +1340,7 @@ type FirewallEndpointAssociation struct { // "ACTIVE" - Active and ready for traffic. // "DELETING" - Being deleted. // "INACTIVE" - Down or in an error state. - // "ORPHAN" - The GCP project that housed the association has been deleted. + // "ORPHAN" - The project that housed the association has been deleted. State string `json:"state,omitempty"` // TlsInspectionPolicy: Optional. The URL of the TlsInspectionPolicy that is // being associated. @@ -1567,6 +2051,37 @@ func (s ListAuthorizationPoliciesResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } +// ListAuthzPoliciesResponse: Message for response to listing `AuthzPolicy` +// resources. +type ListAuthzPoliciesResponse struct { + // AuthzPolicies: The list of `AuthzPolicy` resources. + AuthzPolicies []*AuthzPolicy `json:"authzPolicies,omitempty"` + // NextPageToken: A token identifying a page of results that the server + // returns. + NextPageToken string `json:"nextPageToken,omitempty"` + // Unreachable: Locations that could not be reached. + Unreachable []string `json:"unreachable,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "AuthzPolicies") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AuthzPolicies") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ListAuthzPoliciesResponse) MarshalJSON() ([]byte, error) { + type NoMethod ListAuthzPoliciesResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + // ListClientTlsPoliciesResponse: Response returned by the // ListClientTlsPolicies method. type ListClientTlsPoliciesResponse struct { @@ -8656,25 +9171,371 @@ func (c *ProjectsLocationsAuthorizationPoliciesTestIamPermissionsCall) Do(opts . return ret, nil } -type ProjectsLocationsAuthzPoliciesGetIamPolicyCall struct { - s *Service - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type ProjectsLocationsAuthzPoliciesCreateCall struct { + s *Service + parent string + authzpolicy *AuthzPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. Returns an -// empty policy if the resource exists and does not have a policy set. +// Create: Creates a new AuthzPolicy in a given project and location. // -// - resource: REQUIRED: The resource for which the policy is being requested. -// See Resource names (https://cloud.google.com/apis/design/resource_names) -// for the appropriate value for this field. -func (r *ProjectsLocationsAuthzPoliciesService) GetIamPolicy(resource string) *ProjectsLocationsAuthzPoliciesGetIamPolicyCall { - c := &ProjectsLocationsAuthzPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.resource = resource - return c +// - parent: The parent resource of the `AuthzPolicy` resource. Must be in the +// format `projects/{project}/locations/{location}`. +func (r *ProjectsLocationsAuthzPoliciesService) Create(parent string, authzpolicy *AuthzPolicy) *ProjectsLocationsAuthzPoliciesCreateCall { + c := &ProjectsLocationsAuthzPoliciesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + c.authzpolicy = authzpolicy + return c +} + +// AuthzPolicyId sets the optional parameter "authzPolicyId": Required. +// User-provided ID of the `AuthzPolicy` resource to be created. +func (c *ProjectsLocationsAuthzPoliciesCreateCall) AuthzPolicyId(authzPolicyId string) *ProjectsLocationsAuthzPoliciesCreateCall { + c.urlParams_.Set("authzPolicyId", authzPolicyId) + return c +} + +// RequestId sets the optional parameter "requestId": An optional request ID to +// identify requests. Specify a unique request ID so that if you must retry +// your request, the server can ignore the request if it has already been +// completed. The server guarantees that for at least 60 minutes since the +// first request. For example, consider a situation where you make an initial +// request and the request times out. If you make the request again with the +// same request ID, the server can check if original operation with the same +// request ID was received, and if so, ignores the second request. This +// prevents clients from accidentally creating duplicate commitments. The +// request ID must be a valid UUID with the exception that zero UUID is not +// supported (00000000-0000-0000-0000-000000000000). +func (c *ProjectsLocationsAuthzPoliciesCreateCall) RequestId(requestId string) *ProjectsLocationsAuthzPoliciesCreateCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsAuthzPoliciesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsAuthzPoliciesCreateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsAuthzPoliciesCreateCall) Context(ctx context.Context) *ProjectsLocationsAuthzPoliciesCreateCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsAuthzPoliciesCreateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsAuthzPoliciesCreateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.authzpolicy) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/authzPolicies") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "networksecurity.projects.locations.authzPolicies.create" call. +// Any non-2xx status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsAuthzPoliciesCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +type ProjectsLocationsAuthzPoliciesDeleteCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes a single AuthzPolicy. +// +// - name: The name of the `AuthzPolicy` resource to delete. Must be in the +// format +// `projects/{project}/locations/{location}/authzPolicies/{authz_policy}`. +func (r *ProjectsLocationsAuthzPoliciesService) Delete(name string) *ProjectsLocationsAuthzPoliciesDeleteCall { + c := &ProjectsLocationsAuthzPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// RequestId sets the optional parameter "requestId": An optional request ID to +// identify requests. Specify a unique request ID so that if you must retry +// your request, the server can ignore the request if it has already been +// completed. The server guarantees that for at least 60 minutes after the +// first request. For example, consider a situation where you make an initial +// request and the request times out. If you make the request again with the +// same request ID, the server can check if original operation with the same +// request ID was received, and if so, ignores the second request. This +// prevents clients from accidentally creating duplicate commitments. The +// request ID must be a valid UUID with the exception that zero UUID is not +// supported (00000000-0000-0000-0000-000000000000). +func (c *ProjectsLocationsAuthzPoliciesDeleteCall) RequestId(requestId string) *ProjectsLocationsAuthzPoliciesDeleteCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsAuthzPoliciesDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAuthzPoliciesDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsAuthzPoliciesDeleteCall) Context(ctx context.Context) *ProjectsLocationsAuthzPoliciesDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsAuthzPoliciesDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsAuthzPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "networksecurity.projects.locations.authzPolicies.delete" call. +// Any non-2xx status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsAuthzPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +type ProjectsLocationsAuthzPoliciesGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets details of a single AuthzPolicy. +// +// - name: A name of the `AuthzPolicy` resource to get. Must be in the format +// `projects/{project}/locations/{location}/authzPolicies/{authz_policy}`. +func (r *ProjectsLocationsAuthzPoliciesService) Get(name string) *ProjectsLocationsAuthzPoliciesGetCall { + c := &ProjectsLocationsAuthzPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsAuthzPoliciesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAuthzPoliciesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an optional parameter which makes the operation fail if the +// object's ETag matches the given value. This is useful for getting updates +// only after the object has changed since the last request. +func (c *ProjectsLocationsAuthzPoliciesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAuthzPoliciesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsAuthzPoliciesGetCall) Context(ctx context.Context) *ProjectsLocationsAuthzPoliciesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsAuthzPoliciesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsAuthzPoliciesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "networksecurity.projects.locations.authzPolicies.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *AuthzPolicy.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsAuthzPoliciesGetCall) Do(opts ...googleapi.CallOption) (*AuthzPolicy, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &AuthzPolicy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +type ProjectsLocationsAuthzPoliciesGetIamPolicyCall struct { + s *Service + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. Returns an +// empty policy if the resource exists and does not have a policy set. +// +// - resource: REQUIRED: The resource for which the policy is being requested. +// See Resource names (https://cloud.google.com/apis/design/resource_names) +// for the appropriate value for this field. +func (r *ProjectsLocationsAuthzPoliciesService) GetIamPolicy(resource string) *ProjectsLocationsAuthzPoliciesGetIamPolicyCall { + c := &ProjectsLocationsAuthzPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.resource = resource + return c } // OptionsRequestedPolicyVersion sets the optional parameter @@ -8784,6 +9645,294 @@ func (c *ProjectsLocationsAuthzPoliciesGetIamPolicyCall) Do(opts ...googleapi.Ca return ret, nil } +type ProjectsLocationsAuthzPoliciesListCall struct { + s *Service + parent string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists AuthzPolicies in a given project and location. +// +// - parent: The project and location from which the `AuthzPolicy` resources +// are listed, specified in the following format: +// `projects/{project}/locations/{location}`. +func (r *ProjectsLocationsAuthzPoliciesService) List(parent string) *ProjectsLocationsAuthzPoliciesListCall { + c := &ProjectsLocationsAuthzPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + return c +} + +// Filter sets the optional parameter "filter": Filtering results. +func (c *ProjectsLocationsAuthzPoliciesListCall) Filter(filter string) *ProjectsLocationsAuthzPoliciesListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// OrderBy sets the optional parameter "orderBy": Hint for how to order the +// results. +func (c *ProjectsLocationsAuthzPoliciesListCall) OrderBy(orderBy string) *ProjectsLocationsAuthzPoliciesListCall { + c.urlParams_.Set("orderBy", orderBy) + return c +} + +// PageSize sets the optional parameter "pageSize": Requested page size. The +// server might return fewer items than requested. If unspecified, the server +// picks an appropriate default. +func (c *ProjectsLocationsAuthzPoliciesListCall) PageSize(pageSize int64) *ProjectsLocationsAuthzPoliciesListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": A token identifying a +// page of results that the server returns. +func (c *ProjectsLocationsAuthzPoliciesListCall) PageToken(pageToken string) *ProjectsLocationsAuthzPoliciesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsAuthzPoliciesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAuthzPoliciesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an optional parameter which makes the operation fail if the +// object's ETag matches the given value. This is useful for getting updates +// only after the object has changed since the last request. +func (c *ProjectsLocationsAuthzPoliciesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAuthzPoliciesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsAuthzPoliciesListCall) Context(ctx context.Context) *ProjectsLocationsAuthzPoliciesListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsAuthzPoliciesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsAuthzPoliciesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/authzPolicies") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "networksecurity.projects.locations.authzPolicies.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *ListAuthzPoliciesResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *ProjectsLocationsAuthzPoliciesListCall) Do(opts ...googleapi.CallOption) (*ListAuthzPoliciesResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &ListAuthzPoliciesResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *ProjectsLocationsAuthzPoliciesListCall) Pages(ctx context.Context, f func(*ListAuthzPoliciesResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +type ProjectsLocationsAuthzPoliciesPatchCall struct { + s *Service + name string + authzpolicy *AuthzPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates the parameters of a single AuthzPolicy. +// +// - name: Identifier. Name of the `AuthzPolicy` resource in the following +// format: +// `projects/{project}/locations/{location}/authzPolicies/{authz_policy}`. +func (r *ProjectsLocationsAuthzPoliciesService) Patch(name string, authzpolicy *AuthzPolicy) *ProjectsLocationsAuthzPoliciesPatchCall { + c := &ProjectsLocationsAuthzPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + c.authzpolicy = authzpolicy + return c +} + +// RequestId sets the optional parameter "requestId": An optional request ID to +// identify requests. Specify a unique request ID so that if you must retry +// your request, the server can ignore the request if it has already been +// completed. The server guarantees that for at least 60 minutes since the +// first request. For example, consider a situation where you make an initial +// request and the request times out. If you make the request again with the +// same request ID, the server can check if original operation with the same +// request ID was received, and if so, ignores the second request. This +// prevents clients from accidentally creating duplicate commitments. The +// request ID must be a valid UUID with the exception that zero UUID is not +// supported (00000000-0000-0000-0000-000000000000). +func (c *ProjectsLocationsAuthzPoliciesPatchCall) RequestId(requestId string) *ProjectsLocationsAuthzPoliciesPatchCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// UpdateMask sets the optional parameter "updateMask": Required. Used to +// specify the fields to be overwritten in the `AuthzPolicy` resource by the +// update. The fields specified in the `update_mask` are relative to the +// resource, not the full request. A field is overwritten if it is in the mask. +// If the user does not specify a mask, then all fields are overwritten. +func (c *ProjectsLocationsAuthzPoliciesPatchCall) UpdateMask(updateMask string) *ProjectsLocationsAuthzPoliciesPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ProjectsLocationsAuthzPoliciesPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsAuthzPoliciesPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsLocationsAuthzPoliciesPatchCall) Context(ctx context.Context) *ProjectsLocationsAuthzPoliciesPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsLocationsAuthzPoliciesPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsLocationsAuthzPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.authzpolicy) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "networksecurity.projects.locations.authzPolicies.patch" call. +// Any non-2xx status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was returned. +func (c *ProjectsLocationsAuthzPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil +} + type ProjectsLocationsAuthzPoliciesSetIamPolicyCall struct { s *Service resource string diff --git a/networksecurity/v1beta1/networksecurity-api.json b/networksecurity/v1beta1/networksecurity-api.json index 73d69b750b..99ddf2d518 100644 --- a/networksecurity/v1beta1/networksecurity-api.json +++ b/networksecurity/v1beta1/networksecurity-api.json @@ -3437,7 +3437,7 @@ ], "parameters": { "name": { - "description": "Immutable. Identifier. The name of the MirroringEndpointGroup.", + "description": "Immutable. Identifier. Next ID: 11 The name of the MirroringEndpointGroup.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/mirroringEndpointGroups/[^/]+$", "required": true, @@ -4159,7 +4159,7 @@ } } }, - "revision": "20240919", + "revision": "20241109", "rootUrl": "https://networksecurity.googleapis.com/", "schemas": { "AddAddressGroupItemsRequest": { @@ -4934,7 +4934,7 @@ "Active and ready for traffic.", "Being deleted.", "Down or in an error state.", - "The GCP project that housed the association has been deleted." + "The project that housed the association has been deleted." ], "readOnly": true, "type": "string" @@ -5891,7 +5891,7 @@ "type": "object" }, "MirroringEndpointGroup": { - "description": "Message describing MirroringEndpointGroup object. Next ID: 10", + "description": "Message describing MirroringEndpointGroup object.", "id": "MirroringEndpointGroup", "properties": { "createTime": { @@ -5912,7 +5912,7 @@ "type": "string" }, "name": { - "description": "Immutable. Identifier. The name of the MirroringEndpointGroup.", + "description": "Immutable. Identifier. Next ID: 11 The name of the MirroringEndpointGroup.", "type": "string" }, "reconciling": { diff --git a/networksecurity/v1beta1/networksecurity-gen.go b/networksecurity/v1beta1/networksecurity-gen.go index 3982557305..771055a563 100644 --- a/networksecurity/v1beta1/networksecurity-gen.go +++ b/networksecurity/v1beta1/networksecurity-gen.go @@ -1388,7 +1388,7 @@ type FirewallEndpointAssociation struct { // "ACTIVE" - Active and ready for traffic. // "DELETING" - Being deleted. // "INACTIVE" - Down or in an error state. - // "ORPHAN" - The GCP project that housed the association has been deleted. + // "ORPHAN" - The project that housed the association has been deleted. State string `json:"state,omitempty"` // TlsInspectionPolicy: Optional. The URL of the TlsInspectionPolicy that is // being associated. @@ -2841,7 +2841,6 @@ func (s MirroringDeploymentGroupConnectedEndpointGroup) MarshalJSON() ([]byte, e } // MirroringEndpointGroup: Message describing MirroringEndpointGroup object. -// Next ID: 10 type MirroringEndpointGroup struct { // CreateTime: Output only. [Output only] Create time stamp CreateTime string `json:"createTime,omitempty"` @@ -2852,7 +2851,8 @@ type MirroringEndpointGroup struct { // `projects/{project}/locations/global/mirroringDeploymentGroups/{mirroringDepl // oymentGroup}` MirroringDeploymentGroup string `json:"mirroringDeploymentGroup,omitempty"` - // Name: Immutable. Identifier. The name of the MirroringEndpointGroup. + // Name: Immutable. Identifier. Next ID: 11 The name of the + // MirroringEndpointGroup. Name string `json:"name,omitempty"` // Reconciling: Output only. Whether reconciling is in progress, recommended // per https://google.aip.dev/128. @@ -15715,7 +15715,8 @@ type ProjectsLocationsMirroringEndpointGroupsPatchCall struct { // Patch: Updates a single MirroringEndpointGroup. // -// - name: Immutable. Identifier. The name of the MirroringEndpointGroup. +// - name: Immutable. Identifier. Next ID: 11 The name of the +// MirroringEndpointGroup. func (r *ProjectsLocationsMirroringEndpointGroupsService) Patch(name string, mirroringendpointgroup *MirroringEndpointGroup) *ProjectsLocationsMirroringEndpointGroupsPatchCall { c := &ProjectsLocationsMirroringEndpointGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name diff --git a/run/v2/run-api.json b/run/v2/run-api.json index 2213d2281b..c5c394c773 100644 --- a/run/v2/run-api.json +++ b/run/v2/run-api.json @@ -1526,7 +1526,7 @@ } } }, - "revision": "20241025", + "revision": "20241109", "rootUrl": "https://run.googleapis.com/", "schemas": { "GoogleCloudRunV2BinaryAuthorization": { @@ -3037,6 +3037,25 @@ "description": "A reference to a customer managed encryption key (CMEK) to use to encrypt this container image. For more information, go to https://cloud.google.com/run/docs/securing/using-cmek", "type": "string" }, + "encryptionKeyRevocationAction": { + "description": "Optional. The action to take if the encryption key is revoked.", + "enum": [ + "ENCRYPTION_KEY_REVOCATION_ACTION_UNSPECIFIED", + "PREVENT_NEW", + "SHUTDOWN" + ], + "enumDescriptions": [ + "Unspecified", + "Prevents the creation of new instances.", + "Shuts down existing instances, and prevents creation of new ones." + ], + "type": "string" + }, + "encryptionKeyShutdownDuration": { + "description": "Optional. If encryption_key_revocation_action is SHUTDOWN, the duration before shutting down all instances. The minimum increment is 1 hour.", + "format": "google-duration", + "type": "string" + }, "executionEnvironment": { "description": "Optional. The sandbox environment to host this Revision.", "enum": [ diff --git a/run/v2/run-gen.go b/run/v2/run-gen.go index e72f37f566..fa014249c9 100644 --- a/run/v2/run-gen.go +++ b/run/v2/run-gen.go @@ -1980,6 +1980,19 @@ type GoogleCloudRunV2RevisionTemplate struct { // use to encrypt this container image. For more information, go to // https://cloud.google.com/run/docs/securing/using-cmek EncryptionKey string `json:"encryptionKey,omitempty"` + // EncryptionKeyRevocationAction: Optional. The action to take if the + // encryption key is revoked. + // + // Possible values: + // "ENCRYPTION_KEY_REVOCATION_ACTION_UNSPECIFIED" - Unspecified + // "PREVENT_NEW" - Prevents the creation of new instances. + // "SHUTDOWN" - Shuts down existing instances, and prevents creation of new + // ones. + EncryptionKeyRevocationAction string `json:"encryptionKeyRevocationAction,omitempty"` + // EncryptionKeyShutdownDuration: Optional. If encryption_key_revocation_action + // is SHUTDOWN, the duration before shutting down all instances. The minimum + // increment is 1 hour. + EncryptionKeyShutdownDuration string `json:"encryptionKeyShutdownDuration,omitempty"` // ExecutionEnvironment: Optional. The sandbox environment to host this // Revision. // diff --git a/servicenetworking/v1/servicenetworking-api.json b/servicenetworking/v1/servicenetworking-api.json index b72752a9d9..fa4cc7cf9c 100644 --- a/servicenetworking/v1/servicenetworking-api.json +++ b/servicenetworking/v1/servicenetworking-api.json @@ -1029,7 +1029,7 @@ } } }, - "revision": "20241105", + "revision": "20241113", "rootUrl": "https://servicenetworking.googleapis.com/", "schemas": { "AddDnsRecordSetMetadata": { @@ -2352,6 +2352,13 @@ "common": { "$ref": "CommonLanguageSettings", "description": "Some settings." + }, + "renamedServices": { + "additionalProperties": { + "type": "string" + }, + "description": "Map of service names to renamed services. Keys are the package relative service names and values are the name to be used for the service client and call options. publishing: go_settings: renamed_services: Publisher: TopicAdmin", + "type": "object" } }, "type": "object" diff --git a/servicenetworking/v1/servicenetworking-gen.go b/servicenetworking/v1/servicenetworking-gen.go index b053012fc7..c9abef2781 100644 --- a/servicenetworking/v1/servicenetworking-gen.go +++ b/servicenetworking/v1/servicenetworking-gen.go @@ -2129,6 +2129,11 @@ func (s GetDnsZoneResponse) MarshalJSON() ([]byte, error) { type GoSettings struct { // Common: Some settings. Common *CommonLanguageSettings `json:"common,omitempty"` + // RenamedServices: Map of service names to renamed services. Keys are the + // package relative service names and values are the name to be used for the + // service client and call options. publishing: go_settings: renamed_services: + // Publisher: TopicAdmin + RenamedServices map[string]string `json:"renamedServices,omitempty"` // ForceSendFields is a list of field names (e.g. "Common") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See diff --git a/servicenetworking/v1beta/servicenetworking-api.json b/servicenetworking/v1beta/servicenetworking-api.json index 9db1d476aa..de48ae332b 100644 --- a/servicenetworking/v1beta/servicenetworking-api.json +++ b/servicenetworking/v1beta/servicenetworking-api.json @@ -307,7 +307,7 @@ } } }, - "revision": "20241105", + "revision": "20241113", "rootUrl": "https://servicenetworking.googleapis.com/", "schemas": { "AddDnsRecordSetMetadata": { @@ -1432,6 +1432,13 @@ "common": { "$ref": "CommonLanguageSettings", "description": "Some settings." + }, + "renamedServices": { + "additionalProperties": { + "type": "string" + }, + "description": "Map of service names to renamed services. Keys are the package relative service names and values are the name to be used for the service client and call options. publishing: go_settings: renamed_services: Publisher: TopicAdmin", + "type": "object" } }, "type": "object" diff --git a/servicenetworking/v1beta/servicenetworking-gen.go b/servicenetworking/v1beta/servicenetworking-gen.go index bc2586bfb0..2ecc756346 100644 --- a/servicenetworking/v1beta/servicenetworking-gen.go +++ b/servicenetworking/v1beta/servicenetworking-gen.go @@ -1688,6 +1688,11 @@ func (s FieldPolicy) MarshalJSON() ([]byte, error) { type GoSettings struct { // Common: Some settings. Common *CommonLanguageSettings `json:"common,omitempty"` + // RenamedServices: Map of service names to renamed services. Keys are the + // package relative service names and values are the name to be used for the + // service client and call options. publishing: go_settings: renamed_services: + // Publisher: TopicAdmin + RenamedServices map[string]string `json:"renamedServices,omitempty"` // ForceSendFields is a list of field names (e.g. "Common") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See diff --git a/walletobjects/v1/walletobjects-api.json b/walletobjects/v1/walletobjects-api.json index cb8d5f1d1c..0aa64be743 100644 --- a/walletobjects/v1/walletobjects-api.json +++ b/walletobjects/v1/walletobjects-api.json @@ -2681,7 +2681,7 @@ } } }, - "revision": "20241024", + "revision": "20241114", "rootUrl": "https://walletobjects.googleapis.com/", "schemas": { "ActivationOptions": { @@ -2774,6 +2774,10 @@ "$ref": "AppLinkDataAppLinkInfo", "description": "Optional information about the partner app link." }, + "displayText": { + "$ref": "LocalizedString", + "description": "Optional display text for the app link button. Character limit is 30." + }, "iosAppLinkInfo": { "$ref": "AppLinkDataAppLinkInfo", "deprecated": true, diff --git a/walletobjects/v1/walletobjects-gen.go b/walletobjects/v1/walletobjects-gen.go index 6ac0d76d2a..e9aad2e539 100644 --- a/walletobjects/v1/walletobjects-gen.go +++ b/walletobjects/v1/walletobjects-gen.go @@ -497,6 +497,9 @@ func (s AirportInfo) MarshalJSON() ([]byte, error) { type AppLinkData struct { // AndroidAppLinkInfo: Optional information about the partner app link. AndroidAppLinkInfo *AppLinkDataAppLinkInfo `json:"androidAppLinkInfo,omitempty"` + // DisplayText: Optional display text for the app link button. Character limit + // is 30. + DisplayText *LocalizedString `json:"displayText,omitempty"` // IosAppLinkInfo: Deprecated. Links to open iOS apps are not supported. IosAppLinkInfo *AppLinkDataAppLinkInfo `json:"iosAppLinkInfo,omitempty"` // WebAppLinkInfo: Optional information about the partner web link.