text: // NOTE: This file was generated by the ServiceGenerator.
  
  // ----------------------------------------------------------------------------
  // API:
  //   Cloud Filestore API (file/v1)
  // Description:
  //   The Cloud Filestore API is used for creating and managing cloud file
  //   servers.
  // Documentation:
  //   https://cloud.google.com/filestore/
  
  #if GTLR_BUILT_AS_FRAMEWORK
    #import "GTLR/GTLRObject.h"
  #else
    #import "GTLRObject.h"
  #endif
  
  #if GTLR_RUNTIME_VERSION != 3000
  #error This file was generated by a different version of ServiceGenerator which is incompatible with this GTLR library source.
  #endif
  
  @class GTLRCloudFilestore_FileShareConfig;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_Labels;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_MaintenancePolicyNames;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_MaintenanceSchedules;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_ProducerMetadata;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_RolloutMetadata;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_SoftwareVersions;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1NotificationMetadata;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1RolloutMetadata;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1SloExclusion;
  @class GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata;
  @class GTLRCloudFilestore_Instance;
  @class GTLRCloudFilestore_Instance_Labels;
  @class GTLRCloudFilestore_Location;
  @class GTLRCloudFilestore_Location_Labels;
  @class GTLRCloudFilestore_Location_Metadata;
  @class GTLRCloudFilestore_NetworkConfig;
  @class GTLRCloudFilestore_Operation;
  @class GTLRCloudFilestore_Operation_Metadata;
  @class GTLRCloudFilestore_Operation_Response;
  @class GTLRCloudFilestore_Status;
  @class GTLRCloudFilestore_Status_Details_Item;
  
  // Generated comments include content from the discovery document; avoid them
  // causing warnings since clang's checks are some what arbitrary.
  #pragma clang diagnostic push
  #pragma clang diagnostic ignored "-Wdocumentation"
  
  NS_ASSUME_NONNULL_BEGIN
  
  // ----------------------------------------------------------------------------
  // Constants - For some of the classes' properties below.
  
  // ----------------------------------------------------------------------------
  // GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance.state
  
  /**
   *  Instance is being created.
   *
   *  Value: "CREATING"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_Creating;
  /**
   *  Instance is being deleted.
   *
   *  Value: "DELETING"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_Deleting;
  /**
   *  Instance encountered an error and is in indeterministic state.
   *
   *  Value: "ERROR"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_Error;
  /**
   *  Instance has been created and is ready to use.
   *
   *  Value: "READY"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_Ready;
  /**
   *  Instance is unheathy and under repair.
   *
   *  Value: "REPAIRING"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_Repairing;
  /**
   *  Unspecified state.
   *
   *  Value: "STATE_UNSPECIFIED"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_StateUnspecified;
  /**
   *  Instance is being updated.
   *
   *  Value: "UPDATING"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_Updating;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudFilestore_Instance.state
  
  /**
   *  The instance is being created.
   *
   *  Value: "CREATING"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_Instance_State_Creating;
  /**
   *  The instance is shutting down.
   *
   *  Value: "DELETING"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_Instance_State_Deleting;
  /**
   *  The instance is experiencing an issue and might be unusable. You can get
   *  further details from the `statusMessage` field of the `Instance`
   *  resource.
   *
   *  Value: "ERROR"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_Instance_State_Error;
  /**
   *  The instance is available for use.
   *
   *  Value: "READY"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_Instance_State_Ready;
  /**
   *  Work is being done on the instance. You can get further details from the
   *  `statusMessage` field of the `Instance` resource.
   *
   *  Value: "REPAIRING"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_Instance_State_Repairing;
  /**
   *  State not set.
   *
   *  Value: "STATE_UNSPECIFIED"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_Instance_State_StateUnspecified;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudFilestore_Instance.tier
  
  /**
   *  PREMIUM tier.
   *
   *  Value: "PREMIUM"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_Instance_Tier_Premium;
  /**
   *  STANDARD tier.
   *
   *  Value: "STANDARD"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_Instance_Tier_Standard;
  /**
   *  Not set.
   *
   *  Value: "TIER_UNSPECIFIED"
   */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_Instance_Tier_TierUnspecified;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudFilestore_NetworkConfig.modes
  
  /** Value: "ADDRESS_MODE_UNSPECIFIED" */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_NetworkConfig_Modes_AddressModeUnspecified;
  /** Value: "MODE_IPV4" */
  GTLR_EXTERN NSString * const kGTLRCloudFilestore_NetworkConfig_Modes_ModeIpv4;
  
  /**
   *  The request message for Operations.CancelOperation.
   */
  @interface GTLRCloudFilestore_CancelOperationRequest : GTLRObject
  @end
  
  
  /**
   *  A generic empty message that you can re-use to avoid defining duplicated
   *  empty messages in your APIs. A typical example is to use it as the request
   *  or the response type of an API method. For instance:
   *  service Foo {
   *  rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
   *  }
   *  The JSON representation for `Empty` is empty JSON object `{}`.
   */
  @interface GTLRCloudFilestore_Empty : GTLRObject
  @end
  
  
  /**
   *  File share configuration for the instance.
   */
  @interface GTLRCloudFilestore_FileShareConfig : GTLRObject
  
  /**
   *  File share capacity in gigabytes (GB).
   *  Cloud Filestore defines 1 GB as 1024^3 bytes.
   *
   *  Uses NSNumber of longLongValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *capacityGb;
  
  /** The name of the file share (must be 16 characters or less). */
  @property(nonatomic, copy, nullable) NSString *name;
  
  @end
  
  
  /**
   *  Instance represents the interface for SLM services to actuate the state
   *  of control plane resources.
   *  Example Instance in JSON, where
   *  consumer-project=snapchat,
   *  producer-project=cloud-sql:
   *  ```json
   *  Instance:
   *  {
   *  "name":
   *  "projects/snapchat/locations/us-east1/instances/prod-instance",
   *  "create_time": {
   *  "seconds": 1526406431,
   *  },
   *  "labels": {
   *  "env": "prod",
   *  "foo": "bar"
   *  },
   *  "state": READY,
   *  "software_versions": {
   *  "software_update": "cloud-sql-09-28-2018",
   *  },
   *  "maintenance_policy_names": {
   *  "UpdatePolicy":
   *  "projects/snapchat/locations/us-east1/maintenancePolicies/prod-update-policy",
   *  }
   *  "rollout_metadata": {
   *  "projects/cloud-sql/locations/global/rolloutTypes/software_update": {
   *  "release":
   *  "projects/cloud-sql/locations/global/releases/cloud-sql-09-28-2018",
   *  "rollout":
   *  "projects/cloud-sql/locations/us-east1/rollouts/cloud-sql-09-28-2018-canary",
   *  },
   *  "projects/cloud-sql/locations/global/rolloutTypes/instance_restart": {
   *  "release":
   *  "projects/cloud-sql/locations/global/releases/cloud-sql-09-20-repair",
   *  "rollout":
   *  "projects/cloud-sql/locations/us-east1/rollouts/cloud-sql-09-20-repair-100-percent",
   *  }
   *  }
   *  "tenant_project_id": "cloud-sql-test-tenant",
   *  "producer_metadata": {
   *  "cloud-sql-tier": "basic",
   *  "cloud-sql-instance-size": "1G",
   *  },
   *  "provisioned_resources": [
   *  {
   *  "resource-type": "compute-instance",
   *  "resource-url":
   *  "https://www.googleapis.com/compute/v1/projects/cloud-sql/zones/us-east1-b/instances/vm-1",
   *  }
   *  ],
   *  "maintenance_schedules": {
   *  "csa_rollout": {
   *  "start_time": {
   *  "seconds": 1526406431,
   *  },
   *  "end_time": {
   *  "seconds": 1535406431,
   *  },
   *  },
   *  "ncsa_rollout": {
   *  "start_time": {
   *  "seconds": 1526406431,
   *  },
   *  "end_time": {
   *  "seconds": 1535406431,
   *  },
   *  }
   *  },
   *  "consumer_defined_name": "my-sql-instance1",
   *  }
   *  ```
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance : GTLRObject
  
  /**
   *  consumer_defined_name is the name that is set by the consumer. On the other
   *  hand Name field represents system-assigned id of an instance so consumers
   *  are not necessarily aware of it.
   *  consumer_defined_name is used for notification/UI purposes for consumer to
   *  recognize their instances.
   */
  @property(nonatomic, copy, nullable) NSString *consumerDefinedName;
  
  /** Output only. Timestamp when the resource was created. */
  @property(nonatomic, strong, nullable) GTLRDateTime *createTime;
  
  /**
   *  Optional. Resource labels to represent user provided metadata. Each label
   *  is a key-value pair, where both the key and the value are arbitrary strings
   *  provided by the user.
   */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_Labels *labels;
  
  /**
   *  The MaintenancePolicies that have been attached to the instance.
   *  The key must be of the type name of the oneof policy name defined in
   *  MaintenancePolicy, and the referenced policy must define the same policy
   *  type. For complete details of MaintenancePolicy, please refer to
   *  go/cloud-saas-mw-ug.
   */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_MaintenancePolicyNames *maintenancePolicyNames;
  
  /**
   *  The MaintenanceSchedule contains the scheduling information of published
   *  maintenance schedule.
   */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_MaintenanceSchedules *maintenanceSchedules;
  
  /**
   *  Unique name of the resource. It uses the form:
   *  `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
   */
  @property(nonatomic, copy, nullable) NSString *name;
  
  /**
   *  Output only. Custom string attributes used primarily to expose
   *  producer-specific information in monitoring dashboards.
   *  See go/get-instance-metadata.
   */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_ProducerMetadata *producerMetadata;
  
  /**
   *  Output only. The list of data plane resources provisioned for this
   *  instance, e.g. compute VMs. See go/get-instance-metadata.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource *> *provisionedResources;
  
  /**
   *  The map between RolloutType and the corresponding RolloutMetadata.
   *  This is only mutated by rollout service. For actuation implementation,
   *  this information is pass-through for Rollout management. Producer shall
   *  not modify by itself.
   *  For update of a single entry in this map, the update field mask shall
   *  follow this sementics: go/advanced-field-masks
   */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_RolloutMetadata *rolloutMetadata;
  
  /**
   *  Link to the SLM instance template. Only populated when updating SLM
   *  instances via SSA's Actuation service adaptor.
   *  Service producers with custom control plane (e.g. Cloud SQL) doesn't
   *  need to populate this field. Instead they should use software_versions.
   */
  @property(nonatomic, copy, nullable) NSString *slmInstanceTemplate;
  
  /**
   *  Output only. SLO metadata for instance classification in the
   *  Standardized dataplane SLO platform.
   *  See go/cloud-ssa-standard-slo for feature description.
   */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata *sloMetadata;
  
  /**
   *  Software versions that are used to deploy this instance. This can be
   *  mutated by rollout services.
   */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_SoftwareVersions *softwareVersions;
  
  /**
   *  Output only. Current lifecycle state of the resource (e.g. if it's being
   *  created or ready to use).
   *
   *  Likely values:
   *    @arg @c kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_Creating
   *        Instance is being created. (Value: "CREATING")
   *    @arg @c kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_Deleting
   *        Instance is being deleted. (Value: "DELETING")
   *    @arg @c kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_Error
   *        Instance encountered an error and is in indeterministic state. (Value:
   *        "ERROR")
   *    @arg @c kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_Ready
   *        Instance has been created and is ready to use. (Value: "READY")
   *    @arg @c kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_Repairing
   *        Instance is unheathy and under repair. (Value: "REPAIRING")
   *    @arg @c kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_StateUnspecified
   *        Unspecified state. (Value: "STATE_UNSPECIFIED")
   *    @arg @c kGTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_State_Updating
   *        Instance is being updated. (Value: "UPDATING")
   */
  @property(nonatomic, copy, nullable) NSString *state;
  
  /**
   *  Output only. ID of the associated GCP tenant project.
   *  See go/get-instance-metadata.
   */
  @property(nonatomic, copy, nullable) NSString *tenantProjectId;
  
  /** Output only. Timestamp when the resource was last modified. */
  @property(nonatomic, strong, nullable) GTLRDateTime *updateTime;
  
  @end
  
  
  /**
   *  Optional. Resource labels to represent user provided metadata. Each label
   *  is a key-value pair, where both the key and the value are arbitrary strings
   *  provided by the user.
   *
   *  @note This class is documented as having more properties of NSString. Use @c
   *        -additionalJSONKeys and @c -additionalPropertyForName: to get the list
   *        of properties and then fetch them; or @c -additionalProperties to
   *        fetch them all at once.
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_Labels : GTLRObject
  @end
  
  
  /**
   *  The MaintenancePolicies that have been attached to the instance.
   *  The key must be of the type name of the oneof policy name defined in
   *  MaintenancePolicy, and the referenced policy must define the same policy
   *  type. For complete details of MaintenancePolicy, please refer to
   *  go/cloud-saas-mw-ug.
   *
   *  @note This class is documented as having more properties of NSString. Use @c
   *        -additionalJSONKeys and @c -additionalPropertyForName: to get the list
   *        of properties and then fetch them; or @c -additionalProperties to
   *        fetch them all at once.
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_MaintenancePolicyNames : GTLRObject
  @end
  
  
  /**
   *  The MaintenanceSchedule contains the scheduling information of published
   *  maintenance schedule.
   *
   *  @note This class is documented as having more properties of
   *        GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule.
   *        Use @c -additionalJSONKeys and @c -additionalPropertyForName: to get
   *        the list of properties and then fetch them; or @c
   *        -additionalProperties to fetch them all at once.
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_MaintenanceSchedules : GTLRObject
  @end
  
  
  /**
   *  Output only. Custom string attributes used primarily to expose
   *  producer-specific information in monitoring dashboards.
   *  See go/get-instance-metadata.
   *
   *  @note This class is documented as having more properties of NSString. Use @c
   *        -additionalJSONKeys and @c -additionalPropertyForName: to get the list
   *        of properties and then fetch them; or @c -additionalProperties to
   *        fetch them all at once.
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_ProducerMetadata : GTLRObject
  @end
  
  
  /**
   *  The map between RolloutType and the corresponding RolloutMetadata.
   *  This is only mutated by rollout service. For actuation implementation,
   *  this information is pass-through for Rollout management. Producer shall
   *  not modify by itself.
   *  For update of a single entry in this map, the update field mask shall
   *  follow this sementics: go/advanced-field-masks
   *
   *  @note This class is documented as having more properties of
   *        GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1RolloutMetadata.
   *        Use @c -additionalJSONKeys and @c -additionalPropertyForName: to get
   *        the list of properties and then fetch them; or @c
   *        -additionalProperties to fetch them all at once.
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_RolloutMetadata : GTLRObject
  @end
  
  
  /**
   *  Software versions that are used to deploy this instance. This can be
   *  mutated by rollout services.
   *
   *  @note This class is documented as having more properties of NSString. Use @c
   *        -additionalJSONKeys and @c -additionalPropertyForName: to get the list
   *        of properties and then fetch them; or @c -additionalProperties to
   *        fetch them all at once.
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1Instance_SoftwareVersions : GTLRObject
  @end
  
  
  /**
   *  Maintenance schedule which is exposed to customer and potentially end user,
   *  indicating published upcoming future maintenance schedule
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule : GTLRObject
  
  /**
   *  Can this scheduled update be rescheduled?
   *  By default, it's true and API needs to do explicitly check whether it's
   *  set, if it's set as false explicitly, it's false
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *canReschedule;
  
  /** The scheduled end time for the maintenance. */
  @property(nonatomic, strong, nullable) GTLRDateTime *endTime;
  
  /**
   *  The rollout management policy this maintenance schedule is associated
   *  with. When doing reschedule update request, the reschedule should be
   *  against this given policy.
   */
  @property(nonatomic, copy, nullable) NSString *rolloutManagementPolicy;
  
  /** The scheduled start time for the maintenance. */
  @property(nonatomic, strong, nullable) GTLRDateTime *startTime;
  
  @end
  
  
  /**
   *  Node information for custom per-node SLO implementations.
   *  SSA does not support per-node SLO, but producers can populate per-node
   *  information in SloMetadata for custom precomputations.
   *  SSA Eligibility Exporter will emit per-node metric based on this
   *  information.
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata : GTLRObject
  
  /**
   *  By default node is eligible if instance is eligible.
   *  But individual node might be excluded from SLO by adding entry here.
   *  For semantic see SloMetadata.exclusions.
   *  If both instance and node level exclusions are present for time period,
   *  the node level's reason will be reported by Eligibility Exporter.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1SloExclusion *> *exclusions;
  
  /** The location of the node, if different from instance location. */
  @property(nonatomic, copy, nullable) NSString *location;
  
  /**
   *  The id of the node.
   *  This should be equal to SaasInstanceNode.node_id.
   */
  @property(nonatomic, copy, nullable) NSString *nodeId;
  
  @end
  
  
  /**
   *  NotificationMetadata is the notification state for an instance.
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1NotificationMetadata : GTLRObject
  
  /**
   *  Whether the instance update has been rescheduled.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *rescheduled;
  
  /**
   *  The scheduled end time for the maintenance window during which update
   *  can be performed on the instance.
   */
  @property(nonatomic, strong, nullable) GTLRDateTime *scheduledEndTime;
  
  /**
   *  The scheduled start time for the maintenance window during which
   *  update can be performed on the instance.
   */
  @property(nonatomic, strong, nullable) GTLRDateTime *scheduledStartTime;
  
  /** The target release to be applied to the instance. */
  @property(nonatomic, copy, nullable) NSString *targetRelease;
  
  @end
  
  
  /**
   *  Describes provisioned dataplane resources.
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource : GTLRObject
  
  /**
   *  Type of the resource. This can be either a GCP resource or a custom one
   *  (e.g. another cloud provider's VM). For GCP compute resources use singular
   *  form of the names listed in GCP compute API documentation
   *  (https://cloud.google.com/compute/docs/reference/rest/v1/), prefixed with
   *  'compute-', for example: 'compute-instance', 'compute-disk',
   *  'compute-autoscaler'.
   */
  @property(nonatomic, copy, nullable) NSString *resourceType;
  
  /**
   *  URL identifying the resource, e.g.
   *  "https://www.googleapis.com/compute/v1/projects/...)".
   */
  @property(nonatomic, copy, nullable) NSString *resourceUrl;
  
  @end
  
  
  /**
   *  RolloutMetadata for an actuation instance. It maps to a single RolloutType.
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1RolloutMetadata : GTLRObject
  
  /** Instance level notification metadata. */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1NotificationMetadata *notification;
  
  /** The last Release that has been applied to the instance. */
  @property(nonatomic, copy, nullable) NSString *releaseName;
  
  /** The last rollout that has been applied to the instance. */
  @property(nonatomic, copy, nullable) NSString *rolloutName;
  
  @end
  
  
  /**
   *  SloEligibility is a tuple containing eligibility value: true if an instance
   *  is eligible for SLO calculation or false if it should be excluded from all
   *  SLO-related calculations along with a user-defined reason.
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility : GTLRObject
  
  /**
   *  Whether an instance is eligible or ineligible.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *eligible;
  
  /**
   *  User-defined reason for the current value of instance eligibility. Usually,
   *  this can be directly mapped to the internal state. An empty reason is
   *  allowed.
   */
  @property(nonatomic, copy, nullable) NSString *reason;
  
  @end
  
  
  /**
   *  SloExclusion represents an exclusion in SLI calculation applies to all SLOs.
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1SloExclusion : GTLRObject
  
  /**
   *  Exclusion duration. No restrictions on the possible values.
   *  When an ongoing operation is taking longer than initially expected,
   *  an existing entry in the exclusion list can be updated by extending the
   *  duration. This is supported by the subsystem exporting eligibility data
   *  as long as such extension is committed at least 10 minutes before the
   *  original exclusion expiration - otherwise it is possible that there will
   *  be "gaps" in the exclusion application in the exported timeseries.
   */
  @property(nonatomic, strong, nullable) GTLRDuration *duration;
  
  /**
   *  Human-readable reason for the exclusion.
   *  This should be a static string (e.g. "Disruptive update in progress")
   *  and should not contain dynamically generated data (e.g. instance name).
   *  Can be left empty.
   */
  @property(nonatomic, copy, nullable) NSString *reason;
  
  /**
   *  Name of an SLI that this exclusion applies to. Can be left empty,
   *  signaling that the instance should be excluded from all SLIs defined
   *  in the service SLO configuration.
   */
  @property(nonatomic, copy, nullable) NSString *sliName;
  
  /**
   *  Start time of the exclusion. No alignment (e.g. to a full minute) needed.
   */
  @property(nonatomic, strong, nullable) GTLRDateTime *startTime;
  
  @end
  
  
  /**
   *  SloMetadata contains resources required for proper SLO classification of the
   *  instance.
   */
  @interface GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata : GTLRObject
  
  /** Optional: user-defined instance eligibility. */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility *eligibility;
  
  /**
   *  List of SLO exclusion windows. When multiple entries in the list match
   *  (matching the exclusion time-window against current time point)
   *  the exclusion reason used in the first matching entry will be published.
   *  It is not needed to include expired exclusion in this list, as only the
   *  currently applicable exclusions are taken into account by the eligibility
   *  exporting subsystem (the historical state of exclusions will be reflected
   *  in the historically produced timeseries regardless of the current state).
   *  This field can be used to mark the instance as temporary ineligible
   *  for the purpose of SLO calculation. For permanent instance SLO exclusion,
   *  use of custom instance eligibility is recommended. See 'eligibility' field
   *  below.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1SloExclusion *> *exclusions;
  
  /**
   *  Optional: list of nodes.
   *  Some producers need to use per-node metadata to calculate SLO.
   *  This field allows such producers to publish per-node SLO meta data,
   *  which will be consumed by SSA Eligibility Exporter and published in the
   *  form of per node metric to Monarch.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudFilestore_GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata *> *nodes;
  
  /**
   *  Name of the SLO tier the Instance belongs to. This name will be expected to
   *  match the tiers specified in the service SLO configuration.
   *  Field is mandatory and must not be empty.
   */
  @property(nonatomic, copy, nullable) NSString *tier;
  
  @end
  
  
  /**
   *  A Cloud Filestore instance.
   */
  @interface GTLRCloudFilestore_Instance : GTLRObject
  
  /** Output only. The time when the instance was created. */
  @property(nonatomic, strong, nullable) GTLRDateTime *createTime;
  
  /**
   *  Optional. A description of the instance (2048 characters or less).
   *
   *  Remapped to 'descriptionProperty' to avoid NSObject's 'description'.
   */
  @property(nonatomic, copy, nullable) NSString *descriptionProperty;
  
  /**
   *  Server-specified ETag for the instance resource to prevent simultaneous
   *  updates from overwriting each other.
   */
  @property(nonatomic, copy, nullable) NSString *ETag;
  
  /**
   *  File system shares on the instance.
   *  For this version, only a single file share is supported.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudFilestore_FileShareConfig *> *fileShares;
  
  /** Resource labels to represent user provided metadata. */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_Instance_Labels *labels;
  
  /**
   *  Output only. The resource name of the instance, in the format
   *  projects/{project_id}/locations/{location_id}/instances/{instance_id}.
   */
  @property(nonatomic, copy, nullable) NSString *name;
  
  /**
   *  VPC networks to which the instance is connected.
   *  For this version, only a single network is supported.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudFilestore_NetworkConfig *> *networks;
  
  /**
   *  Output only. The instance state.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudFilestore_Instance_State_Creating The instance is being
   *        created. (Value: "CREATING")
   *    @arg @c kGTLRCloudFilestore_Instance_State_Deleting The instance is
   *        shutting down. (Value: "DELETING")
   *    @arg @c kGTLRCloudFilestore_Instance_State_Error The instance is
   *        experiencing an issue and might be unusable. You can get
   *        further details from the `statusMessage` field of the `Instance`
   *        resource. (Value: "ERROR")
   *    @arg @c kGTLRCloudFilestore_Instance_State_Ready The instance is available
   *        for use. (Value: "READY")
   *    @arg @c kGTLRCloudFilestore_Instance_State_Repairing Work is being done on
   *        the instance. You can get further details from the
   *        `statusMessage` field of the `Instance` resource. (Value: "REPAIRING")
   *    @arg @c kGTLRCloudFilestore_Instance_State_StateUnspecified State not set.
   *        (Value: "STATE_UNSPECIFIED")
   */
  @property(nonatomic, copy, nullable) NSString *state;
  
  /**
   *  Output only. Additional information about the instance state, if available.
   */
  @property(nonatomic, copy, nullable) NSString *statusMessage;
  
  /**
   *  The service tier of the instance.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudFilestore_Instance_Tier_Premium PREMIUM tier. (Value:
   *        "PREMIUM")
   *    @arg @c kGTLRCloudFilestore_Instance_Tier_Standard STANDARD tier. (Value:
   *        "STANDARD")
   *    @arg @c kGTLRCloudFilestore_Instance_Tier_TierUnspecified Not set. (Value:
   *        "TIER_UNSPECIFIED")
   */
  @property(nonatomic, copy, nullable) NSString *tier;
  
  @end
  
  
  /**
   *  Resource labels to represent user provided metadata.
   *
   *  @note This class is documented as having more properties of NSString. Use @c
   *        -additionalJSONKeys and @c -additionalPropertyForName: to get the list
   *        of properties and then fetch them; or @c -additionalProperties to
   *        fetch them all at once.
   */
  @interface GTLRCloudFilestore_Instance_Labels : GTLRObject
  @end
  
  
  /**
   *  ListInstancesResponse is the result of ListInstancesRequest.
   *
   *  @note This class supports NSFastEnumeration and indexed subscripting over
   *        its "instances" property. If returned as the result of a query, it
   *        should support automatic pagination (when @c shouldFetchNextPages is
   *        enabled).
   */
  @interface GTLRCloudFilestore_ListInstancesResponse : GTLRCollectionObject
  
  /**
   *  A list of instances in the project for the specified location.
   *  If the {location} value in the request is "-", the response contains a list
   *  of instances from all locations. If any location is unreachable, the
   *  response will only return instances in reachable locations and the
   *  "unreachable" field will be populated with a list of unreachable locations.
   *
   *  @note This property is used to support NSFastEnumeration and indexed
   *        subscripting on this class.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudFilestore_Instance *> *instances;
  
  /**
   *  The token you can use to retrieve the next page of results. Not returned
   *  if there are no more results in the list.
   */
  @property(nonatomic, copy, nullable) NSString *nextPageToken;
  
  /** Locations that could not be reached. */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *unreachable;
  
  @end
  
  
  /**
   *  The response message for Locations.ListLocations.
   *
   *  @note This class supports NSFastEnumeration and indexed subscripting over
   *        its "locations" property. If returned as the result of a query, it
   *        should support automatic pagination (when @c shouldFetchNextPages is
   *        enabled).
   */
  @interface GTLRCloudFilestore_ListLocationsResponse : GTLRCollectionObject
  
  /**
   *  A list of locations that matches the specified filter in the request.
   *
   *  @note This property is used to support NSFastEnumeration and indexed
   *        subscripting on this class.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudFilestore_Location *> *locations;
  
  /** The standard List next-page token. */
  @property(nonatomic, copy, nullable) NSString *nextPageToken;
  
  @end
  
  
  /**
   *  The response message for Operations.ListOperations.
   *
   *  @note This class supports NSFastEnumeration and indexed subscripting over
   *        its "operations" property. If returned as the result of a query, it
   *        should support automatic pagination (when @c shouldFetchNextPages is
   *        enabled).
   */
  @interface GTLRCloudFilestore_ListOperationsResponse : GTLRCollectionObject
  
  /** The standard List next-page token. */
  @property(nonatomic, copy, nullable) NSString *nextPageToken;
  
  /**
   *  A list of operations that matches the specified filter in the request.
   *
   *  @note This property is used to support NSFastEnumeration and indexed
   *        subscripting on this class.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudFilestore_Operation *> *operations;
  
  @end
  
  
  /**
   *  A resource that represents Google Cloud Platform location.
   */
  @interface GTLRCloudFilestore_Location : GTLRObject
  
  /**
   *  The friendly name for this location, typically a nearby city name.
   *  For example, "Tokyo".
   */
  @property(nonatomic, copy, nullable) NSString *displayName;
  
  /**
   *  Cross-service attributes for the location. For example
   *  {"cloud.googleapis.com/region": "us-east1"}
   */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_Location_Labels *labels;
  
  /** The canonical id for this location. For example: `"us-east1"`. */
  @property(nonatomic, copy, nullable) NSString *locationId;
  
  /**
   *  Service-specific metadata. For example the available capacity at the given
   *  location.
   */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_Location_Metadata *metadata;
  
  /**
   *  Resource name for the location, which may vary between implementations.
   *  For example: `"projects/example-project/locations/us-east1"`
   */
  @property(nonatomic, copy, nullable) NSString *name;
  
  @end
  
  
  /**
   *  Cross-service attributes for the location. For example
   *  {"cloud.googleapis.com/region": "us-east1"}
   *
   *  @note This class is documented as having more properties of NSString. Use @c
   *        -additionalJSONKeys and @c -additionalPropertyForName: to get the list
   *        of properties and then fetch them; or @c -additionalProperties to
   *        fetch them all at once.
   */
  @interface GTLRCloudFilestore_Location_Labels : GTLRObject
  @end
  
  
  /**
   *  Service-specific metadata. For example the available capacity at the given
   *  location.
   *
   *  @note This class is documented as having more properties of any valid JSON
   *        type. Use @c -additionalJSONKeys and @c -additionalPropertyForName: to
   *        get the list of properties and then fetch them; or @c
   *        -additionalProperties to fetch them all at once.
   */
  @interface GTLRCloudFilestore_Location_Metadata : GTLRObject
  @end
  
  
  /**
   *  Network configuration for the instance.
   */
  @interface GTLRCloudFilestore_NetworkConfig : GTLRObject
  
  /**
   *  Output only. IPv4 addresses in the format
   *  {octet 1}.{octet 2}.{octet 3}.{octet 4} or IPv6 addresses in the format
   *  {block 1}:{block 2}:{block 3}:{block 4}:{block 5}:{block 6}:{block
   *  7}:{block 8}.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *ipAddresses;
  
  /**
   *  Internet protocol versions for which the instance has IP addresses
   *  assigned. For this version, only MODE_IPV4 is supported.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *modes;
  
  /**
   *  The name of the Google Compute Engine
   *  [VPC network](/compute/docs/networks-and-firewalls#networks) to which the
   *  instance is connected.
   */
  @property(nonatomic, copy, nullable) NSString *network;
  
  /**
   *  A /29 CIDR block in one of the
   *  [internal IP address
   *  ranges](https://www.arin.net/knowledge/address_filters.html) that
   *  identifies the range of IP addresses reserved for this instance. For
   *  example, 10.0.0.0/29 or 192.168.0.0/29. The range you specify can't overlap
   *  with either existing subnets or assigned IP address ranges for other Cloud
   *  Filestore instances in the selected VPC network.
   */
  @property(nonatomic, copy, nullable) NSString *reservedIpRange;
  
  @end
  
  
  /**
   *  This resource represents a long-running operation that is the result of a
   *  network API call.
   */
  @interface GTLRCloudFilestore_Operation : GTLRObject
  
  /**
   *  If the value is `false`, it means the operation is still in progress.
   *  If `true`, the operation is completed, and either `error` or `response` is
   *  available.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *done;
  
  /** The error result of the operation in case of failure or cancellation. */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_Status *error;
  
  /**
   *  Service-specific metadata associated with the operation. It typically
   *  contains progress information and common metadata such as create time.
   *  Some services might not provide such metadata. Any method that returns a
   *  long-running operation should document the metadata type, if any.
   */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_Operation_Metadata *metadata;
  
  /**
   *  The server-assigned name, which is only unique within the same service that
   *  originally returns it. If you use the default HTTP mapping, the
   *  `name` should be a resource name ending with `operations/{unique_id}`.
   */
  @property(nonatomic, copy, nullable) NSString *name;
  
  /**
   *  The normal response of the operation in case of success. If the original
   *  method returns no data on success, such as `Delete`, the response is
   *  `google.protobuf.Empty`. If the original method is standard
   *  `Get`/`Create`/`Update`, the response should be the resource. For other
   *  methods, the response should have the type `XxxResponse`, where `Xxx`
   *  is the original method name. For example, if the original method name
   *  is `TakeSnapshot()`, the inferred response type is
   *  `TakeSnapshotResponse`.
   */
  @property(nonatomic, strong, nullable) GTLRCloudFilestore_Operation_Response *response;
  
  @end
  
  
  /**
   *  Service-specific metadata associated with the operation. It typically
   *  contains progress information and common metadata such as create time.
   *  Some services might not provide such metadata. Any method that returns a
   *  long-running operation should document the metadata type, if any.
   *
   *  @note This class is documented as having more properties of any valid JSON
   *        type. Use @c -additionalJSONKeys and @c -additionalPropertyForName: to
   *        get the list of properties and then fetch them; or @c
   *        -additionalProperties to fetch them all at once.
   */
  @interface GTLRCloudFilestore_Operation_Metadata : GTLRObject
  @end
  
  
  /**
   *  The normal response of the operation in case of success. If the original
   *  method returns no data on success, such as `Delete`, the response is
   *  `google.protobuf.Empty`. If the original method is standard
   *  `Get`/`Create`/`Update`, the response should be the resource. For other
   *  methods, the response should have the type `XxxResponse`, where `Xxx`
   *  is the original method name. For example, if the original method name
   *  is `TakeSnapshot()`, the inferred response type is
   *  `TakeSnapshotResponse`.
   *
   *  @note This class is documented as having more properties of any valid JSON
   *        type. Use @c -additionalJSONKeys and @c -additionalPropertyForName: to
   *        get the list of properties and then fetch them; or @c
   *        -additionalProperties to fetch them all at once.
   */
  @interface GTLRCloudFilestore_Operation_Response : GTLRObject
  @end
  
  
  /**
   *  Represents the metadata of the long-running operation.
   */
  @interface GTLRCloudFilestore_OperationMetadata : GTLRObject
  
  /** [Output only] API version used to start the operation. */
  @property(nonatomic, copy, nullable) NSString *apiVersion;
  
  /**
   *  [Output only] Identifies whether the user has requested cancellation
   *  of the operation. Operations that have successfully been cancelled
   *  have Operation.error value with a google.rpc.Status.code of 1,
   *  corresponding to `Code.CANCELLED`.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *cancelRequested;
  
  /** [Output only] The time the operation was created. */
  @property(nonatomic, strong, nullable) GTLRDateTime *createTime;
  
  /** [Output only] The time the operation finished running. */
  @property(nonatomic, strong, nullable) GTLRDateTime *endTime;
  
  /** [Output only] Human-readable status of the operation, if any. */
  @property(nonatomic, copy, nullable) NSString *statusDetail;
  
  /**
   *  [Output only] Server-defined resource path for the target of the operation.
   */
  @property(nonatomic, copy, nullable) NSString *target;
  
  /** [Output only] Name of the verb executed by the operation. */
  @property(nonatomic, copy, nullable) NSString *verb;
  
  @end
  
  
  /**
   *  The `Status` type defines a logical error model that is suitable for
   *  different programming environments, including REST APIs and RPC APIs. It is
   *  used by [gRPC](https://github.com/grpc). Each `Status` message contains
   *  three pieces of data: error code, error message, and error details.
   *  You can find out more about this error model and how to work with it in the
   *  [API Design Guide](https://cloud.google.com/apis/design/errors).
   */
  @interface GTLRCloudFilestore_Status : GTLRObject
  
  /**
   *  The status code, which should be an enum value of google.rpc.Code.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *code;
  
  /**
   *  A list of messages that carry the error details. There is a common set of
   *  message types for APIs to use.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudFilestore_Status_Details_Item *> *details;
  
  /**
   *  A developer-facing error message, which should be in English. Any
   *  user-facing error message should be localized and sent in the
   *  google.rpc.Status.details field, or localized by the client.
   */
  @property(nonatomic, copy, nullable) NSString *message;
  
  @end
  
  
  /**
   *  GTLRCloudFilestore_Status_Details_Item
   *
   *  @note This class is documented as having more properties of any valid JSON
   *        type. Use @c -additionalJSONKeys and @c -additionalPropertyForName: to
   *        get the list of properties and then fetch them; or @c
   *        -additionalProperties to fetch them all at once.
   */
  @interface GTLRCloudFilestore_Status_Details_Item : GTLRObject
  @end
  
  NS_ASSUME_NONNULL_END
  
  #pragma clang diagnostic pop
  