Class: Google::Cloud::AIPlatform::V1::PersistentResource

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb

Overview

Represents long-lasting resources that are dedicated to users to runs custom workloads. A PersistentResource can have multiple node pools and each node pool can have its own machine spec.

Defined Under Namespace

Modules: State Classes: LabelsEntry

Instance Attribute Summary collapse

Instance Attribute Details

#create_time::Google::Protobuf::Timestamp (readonly)

Returns Output only. Time when the PersistentResource was created.

Returns:



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end

#display_name::String

Returns Optional. The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.

Returns:

  • (::String)

    Optional. The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end

#encryption_spec::Google::Cloud::AIPlatform::V1::EncryptionSpec

Returns Optional. Customer-managed encryption key spec for a PersistentResource. If set, this PersistentResource and all sub-resources of this PersistentResource will be secured by this key.

Returns:

  • (::Google::Cloud::AIPlatform::V1::EncryptionSpec)

    Optional. Customer-managed encryption key spec for a PersistentResource. If set, this PersistentResource and all sub-resources of this PersistentResource will be secured by this key.



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end

#error::Google::Rpc::Status (readonly)

Returns Output only. Only populated when persistent resource's state is STOPPING or ERROR.

Returns:

  • (::Google::Rpc::Status)

    Output only. Only populated when persistent resource's state is STOPPING or ERROR.



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end

#labels::Google::Protobuf::Map{::String => ::String}

Returns Optional. The labels with user-defined metadata to organize PersistentResource.

Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed.

See https://goo.gl/xmQnxf for more information and examples of labels.

Returns:

  • (::Google::Protobuf::Map{::String => ::String})

    Optional. The labels with user-defined metadata to organize PersistentResource.

    Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed.

    See https://goo.gl/xmQnxf for more information and examples of labels.



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end

#name::String

Returns Immutable. Resource name of a PersistentResource.

Returns:

  • (::String)

    Immutable. Resource name of a PersistentResource.



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end

#network::String

Returns Optional. The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name.

To specify this field, you must have already configured VPC Network Peering for Vertex AI.

If this field is left unspecified, the resources aren't peered with any network.

Returns:

  • (::String)

    Optional. The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name.

    To specify this field, you must have already configured VPC Network Peering for Vertex AI.

    If this field is left unspecified, the resources aren't peered with any network.



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end

#reserved_ip_ranges::Array<::String>

Returns Optional. A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource.

If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network.

Example: ['vertex-ai-ip-range'].

Returns:

  • (::Array<::String>)

    Optional. A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource.

    If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network.

    Example: ['vertex-ai-ip-range'].



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end

#resource_pools::Array<::Google::Cloud::AIPlatform::V1::ResourcePool>

Returns Required. The spec of the pools of different resources.

Returns:



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end

#resource_runtime::Google::Cloud::AIPlatform::V1::ResourceRuntime (readonly)

Returns Output only. Runtime information of the Persistent Resource.

Returns:



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end

#resource_runtime_spec::Google::Cloud::AIPlatform::V1::ResourceRuntimeSpec

Returns Optional. Persistent Resource runtime spec. For example, used for Ray cluster configuration.

Returns:



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end

#start_time::Google::Protobuf::Timestamp (readonly)

Returns Output only. Time when the PersistentResource for the first time entered the RUNNING state.

Returns:



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end

#state::Google::Cloud::AIPlatform::V1::PersistentResource::State (readonly)

Returns Output only. The detailed state of a Study.

Returns:



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end

#update_time::Google::Protobuf::Timestamp (readonly)

Returns Output only. Time when the PersistentResource was most recently updated.

Returns:



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'proto_docs/google/cloud/aiplatform/v1/persistent_resource.rb', line 105

class PersistentResource
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes the PersistentResource state.
  module State
    # Not set.
    STATE_UNSPECIFIED = 0

    # The PROVISIONING state indicates the persistent resources is being
    # created.
    PROVISIONING = 1

    # The RUNNING state indicates the persistent resource is healthy and fully
    # usable.
    RUNNING = 3

    # The STOPPING state indicates the persistent resource is being deleted.
    STOPPING = 4

    # The ERROR state indicates the persistent resource may be unusable.
    # Details can be found in the `error` field.
    ERROR = 5

    # The REBOOTING state indicates the persistent resource is being rebooted
    # (PR is not available right now but is expected to be ready again later).
    REBOOTING = 6

    # The UPDATING state indicates the persistent resource is being updated.
    UPDATING = 7
  end
end