593 lines
20 KiB
Ruby
593 lines
20 KiB
Ruby
|
# Copyright 2020 Google LLC
|
||
|
#
|
||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
# you may not use this file except in compliance with the License.
|
||
|
# You may obtain a copy of the License at
|
||
|
#
|
||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
# See the License for the specific language governing permissions and
|
||
|
# limitations under the License.
|
||
|
|
||
|
require 'date'
|
||
|
require 'google/apis/core/base_service'
|
||
|
require 'google/apis/core/json_representation'
|
||
|
require 'google/apis/core/hashable'
|
||
|
require 'google/apis/errors'
|
||
|
|
||
|
module Google
|
||
|
module Apis
|
||
|
module NotebooksV1
|
||
|
|
||
|
class AcceleratorConfig
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class Binding
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class CancelOperationRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class ContainerImage
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class Disk
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class Empty
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class Environment
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class Expr
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class GuestOsFeature
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class Instance
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class IsInstanceUpgradeableResponse
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class ListEnvironmentsResponse
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class ListInstancesResponse
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class ListLocationsResponse
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class ListOperationsResponse
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class Location
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class Operation
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class OperationMetadata
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class Policy
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class RegisterInstanceRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class ReportInstanceInfoRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class ResetInstanceRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class SetIamPolicyRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class SetInstanceAcceleratorRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class SetInstanceLabelsRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class SetInstanceMachineTypeRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class StartInstanceRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class Status
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class StopInstanceRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class TestIamPermissionsRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class TestIamPermissionsResponse
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class TriggerScheduleRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class UpgradeHistoryEntry
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class UpgradeInstanceInternalRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class UpgradeInstanceRequest
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class VmImage
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation; end
|
||
|
|
||
|
include Google::Apis::Core::JsonObjectSupport
|
||
|
end
|
||
|
|
||
|
class AcceleratorConfig
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :core_count, :numeric_string => true, as: 'coreCount'
|
||
|
property :type, as: 'type'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Binding
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :condition, as: 'condition', class: Google::Apis::NotebooksV1::Expr, decorator: Google::Apis::NotebooksV1::Expr::Representation
|
||
|
|
||
|
collection :members, as: 'members'
|
||
|
property :role, as: 'role'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class CancelOperationRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class ContainerImage
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :repository, as: 'repository'
|
||
|
property :tag, as: 'tag'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Disk
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :auto_delete, as: 'autoDelete'
|
||
|
property :boot, as: 'boot'
|
||
|
property :device_name, as: 'deviceName'
|
||
|
property :disk_size_gb, :numeric_string => true, as: 'diskSizeGb'
|
||
|
collection :guest_os_features, as: 'guestOsFeatures', class: Google::Apis::NotebooksV1::GuestOsFeature, decorator: Google::Apis::NotebooksV1::GuestOsFeature::Representation
|
||
|
|
||
|
property :index, :numeric_string => true, as: 'index'
|
||
|
property :interface, as: 'interface'
|
||
|
property :kind, as: 'kind'
|
||
|
collection :licenses, as: 'licenses'
|
||
|
property :mode, as: 'mode'
|
||
|
property :source, as: 'source'
|
||
|
property :type, as: 'type'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Empty
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Environment
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :container_image, as: 'containerImage', class: Google::Apis::NotebooksV1::ContainerImage, decorator: Google::Apis::NotebooksV1::ContainerImage::Representation
|
||
|
|
||
|
property :create_time, as: 'createTime'
|
||
|
property :description, as: 'description'
|
||
|
property :display_name, as: 'displayName'
|
||
|
property :name, as: 'name'
|
||
|
property :post_startup_script, as: 'postStartupScript'
|
||
|
property :vm_image, as: 'vmImage', class: Google::Apis::NotebooksV1::VmImage, decorator: Google::Apis::NotebooksV1::VmImage::Representation
|
||
|
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Expr
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :description, as: 'description'
|
||
|
property :expression, as: 'expression'
|
||
|
property :location, as: 'location'
|
||
|
property :title, as: 'title'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class GuestOsFeature
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :type, as: 'type'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Instance
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :accelerator_config, as: 'acceleratorConfig', class: Google::Apis::NotebooksV1::AcceleratorConfig, decorator: Google::Apis::NotebooksV1::AcceleratorConfig::Representation
|
||
|
|
||
|
property :boot_disk_size_gb, :numeric_string => true, as: 'bootDiskSizeGb'
|
||
|
property :boot_disk_type, as: 'bootDiskType'
|
||
|
property :container_image, as: 'containerImage', class: Google::Apis::NotebooksV1::ContainerImage, decorator: Google::Apis::NotebooksV1::ContainerImage::Representation
|
||
|
|
||
|
property :create_time, as: 'createTime'
|
||
|
property :custom_gpu_driver_path, as: 'customGpuDriverPath'
|
||
|
property :data_disk_size_gb, :numeric_string => true, as: 'dataDiskSizeGb'
|
||
|
property :data_disk_type, as: 'dataDiskType'
|
||
|
property :disk_encryption, as: 'diskEncryption'
|
||
|
collection :disks, as: 'disks', class: Google::Apis::NotebooksV1::Disk, decorator: Google::Apis::NotebooksV1::Disk::Representation
|
||
|
|
||
|
property :install_gpu_driver, as: 'installGpuDriver'
|
||
|
collection :instance_owners, as: 'instanceOwners'
|
||
|
property :kms_key, as: 'kmsKey'
|
||
|
hash :labels, as: 'labels'
|
||
|
property :machine_type, as: 'machineType'
|
||
|
hash :metadata, as: 'metadata'
|
||
|
property :name, as: 'name'
|
||
|
property :network, as: 'network'
|
||
|
property :no_proxy_access, as: 'noProxyAccess'
|
||
|
property :no_public_ip, as: 'noPublicIp'
|
||
|
property :no_remove_data_disk, as: 'noRemoveDataDisk'
|
||
|
property :post_startup_script, as: 'postStartupScript'
|
||
|
property :proxy_uri, as: 'proxyUri'
|
||
|
property :service_account, as: 'serviceAccount'
|
||
|
property :state, as: 'state'
|
||
|
property :subnet, as: 'subnet'
|
||
|
property :update_time, as: 'updateTime'
|
||
|
collection :upgrade_history, as: 'upgradeHistory', class: Google::Apis::NotebooksV1::UpgradeHistoryEntry, decorator: Google::Apis::NotebooksV1::UpgradeHistoryEntry::Representation
|
||
|
|
||
|
property :vm_image, as: 'vmImage', class: Google::Apis::NotebooksV1::VmImage, decorator: Google::Apis::NotebooksV1::VmImage::Representation
|
||
|
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class IsInstanceUpgradeableResponse
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :upgrade_info, as: 'upgradeInfo'
|
||
|
property :upgrade_version, as: 'upgradeVersion'
|
||
|
property :upgradeable, as: 'upgradeable'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class ListEnvironmentsResponse
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
collection :environments, as: 'environments', class: Google::Apis::NotebooksV1::Environment, decorator: Google::Apis::NotebooksV1::Environment::Representation
|
||
|
|
||
|
property :next_page_token, as: 'nextPageToken'
|
||
|
collection :unreachable, as: 'unreachable'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class ListInstancesResponse
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
collection :instances, as: 'instances', class: Google::Apis::NotebooksV1::Instance, decorator: Google::Apis::NotebooksV1::Instance::Representation
|
||
|
|
||
|
property :next_page_token, as: 'nextPageToken'
|
||
|
collection :unreachable, as: 'unreachable'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class ListLocationsResponse
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
collection :locations, as: 'locations', class: Google::Apis::NotebooksV1::Location, decorator: Google::Apis::NotebooksV1::Location::Representation
|
||
|
|
||
|
property :next_page_token, as: 'nextPageToken'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class ListOperationsResponse
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :next_page_token, as: 'nextPageToken'
|
||
|
collection :operations, as: 'operations', class: Google::Apis::NotebooksV1::Operation, decorator: Google::Apis::NotebooksV1::Operation::Representation
|
||
|
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Location
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :display_name, as: 'displayName'
|
||
|
hash :labels, as: 'labels'
|
||
|
property :location_id, as: 'locationId'
|
||
|
hash :metadata, as: 'metadata'
|
||
|
property :name, as: 'name'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Operation
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :done, as: 'done'
|
||
|
property :error, as: 'error', class: Google::Apis::NotebooksV1::Status, decorator: Google::Apis::NotebooksV1::Status::Representation
|
||
|
|
||
|
hash :metadata, as: 'metadata'
|
||
|
property :name, as: 'name'
|
||
|
hash :response, as: 'response'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class OperationMetadata
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :api_version, as: 'apiVersion'
|
||
|
property :create_time, as: 'createTime'
|
||
|
property :end_time, as: 'endTime'
|
||
|
property :endpoint, as: 'endpoint'
|
||
|
property :requested_cancellation, as: 'requestedCancellation'
|
||
|
property :status_message, as: 'statusMessage'
|
||
|
property :target, as: 'target'
|
||
|
property :verb, as: 'verb'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Policy
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
collection :bindings, as: 'bindings', class: Google::Apis::NotebooksV1::Binding, decorator: Google::Apis::NotebooksV1::Binding::Representation
|
||
|
|
||
|
property :etag, :base64 => true, as: 'etag'
|
||
|
property :version, as: 'version'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class RegisterInstanceRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :instance_id, as: 'instanceId'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class ReportInstanceInfoRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
hash :metadata, as: 'metadata'
|
||
|
property :vm_id, as: 'vmId'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class ResetInstanceRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class SetIamPolicyRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :policy, as: 'policy', class: Google::Apis::NotebooksV1::Policy, decorator: Google::Apis::NotebooksV1::Policy::Representation
|
||
|
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class SetInstanceAcceleratorRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :core_count, :numeric_string => true, as: 'coreCount'
|
||
|
property :type, as: 'type'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class SetInstanceLabelsRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
hash :labels, as: 'labels'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class SetInstanceMachineTypeRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :machine_type, as: 'machineType'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class StartInstanceRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Status
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :code, as: 'code'
|
||
|
collection :details, as: 'details'
|
||
|
property :message, as: 'message'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class StopInstanceRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class TestIamPermissionsRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
collection :permissions, as: 'permissions'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class TestIamPermissionsResponse
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
collection :permissions, as: 'permissions'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class TriggerScheduleRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class UpgradeHistoryEntry
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :container_image, as: 'containerImage'
|
||
|
property :create_time, as: 'createTime'
|
||
|
property :framework, as: 'framework'
|
||
|
property :snapshot, as: 'snapshot'
|
||
|
property :state, as: 'state'
|
||
|
property :version, as: 'version'
|
||
|
property :vm_image, as: 'vmImage'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class UpgradeInstanceInternalRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :vm_id, as: 'vmId'
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class UpgradeInstanceRequest
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class VmImage
|
||
|
# @private
|
||
|
class Representation < Google::Apis::Core::JsonRepresentation
|
||
|
property :image_family, as: 'imageFamily'
|
||
|
property :image_name, as: 'imageName'
|
||
|
property :project, as: 'project'
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|