azure_mgmt_netapp 0.20.1 → 0.20.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/lib/2017-08-15-preview/generated/azure_mgmt_netapp/azure_net_app_files_management_client.rb +1 -1
  3. data/lib/2019-05-01/generated/azure_mgmt_netapp/azure_net_app_files_management_client.rb +1 -1
  4. data/lib/2019-06-01/generated/azure_mgmt_netapp/azure_net_app_files_management_client.rb +1 -1
  5. data/lib/2019-07-01/generated/azure_mgmt_netapp/azure_net_app_files_management_client.rb +1 -1
  6. data/lib/2019-08-01/generated/azure_mgmt_netapp/azure_net_app_files_management_client.rb +1 -1
  7. data/lib/2019-10-01/generated/azure_mgmt_netapp/azure_net_app_files_management_client.rb +1 -1
  8. data/lib/2019-11-01/generated/azure_mgmt_netapp/azure_net_app_files_management_client.rb +1 -1
  9. data/lib/2020-02-01/generated/azure_mgmt_netapp/azure_net_app_files_management_client.rb +1 -1
  10. data/lib/2020-06-01/generated/azure_mgmt_netapp.rb +104 -0
  11. data/lib/2020-06-01/generated/azure_mgmt_netapp/account_backups.rb +373 -0
  12. data/lib/2020-06-01/generated/azure_mgmt_netapp/accounts.rb +709 -0
  13. data/lib/2020-06-01/generated/azure_mgmt_netapp/azure_net_app_files_management_client.rb +173 -0
  14. data/lib/2020-06-01/generated/azure_mgmt_netapp/backup_policies.rb +691 -0
  15. data/lib/2020-06-01/generated/azure_mgmt_netapp/backups.rb +747 -0
  16. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/active_directory.rb +229 -0
  17. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/active_directory_status.rb +19 -0
  18. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/authorize_request.rb +46 -0
  19. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/backup.rb +141 -0
  20. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/backup_patch.rb +113 -0
  21. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/backup_policies_list.rb +55 -0
  22. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/backup_policy.rb +212 -0
  23. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/backup_policy_details.rb +212 -0
  24. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/backup_policy_patch.rb +157 -0
  25. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/backups_list.rb +55 -0
  26. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/break_replication_request.rb +47 -0
  27. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/capacity_pool.rb +204 -0
  28. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/capacity_pool_list.rb +55 -0
  29. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/capacity_pool_patch.rb +132 -0
  30. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/check_availability_response.rb +78 -0
  31. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/check_name_resource_types.rb +18 -0
  32. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/check_quota_name_resource_types.rb +18 -0
  33. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/daily_schedule.rb +81 -0
  34. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/dimension.rb +57 -0
  35. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/endpoint_type.rb +16 -0
  36. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/export_policy_rule.rb +205 -0
  37. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/hourly_schedule.rb +69 -0
  38. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/in_availability_reason_type.rb +16 -0
  39. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/metric_specification.rb +145 -0
  40. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/mirror_state.rb +17 -0
  41. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/monthly_schedule.rb +93 -0
  42. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/mount_target.rb +159 -0
  43. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/mount_target_properties.rb +93 -0
  44. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/net_app_account.rb +133 -0
  45. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/net_app_account_list.rb +55 -0
  46. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/net_app_account_patch.rb +133 -0
  47. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/operation.rb +83 -0
  48. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/operation_display.rb +79 -0
  49. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/operation_list_result.rb +57 -0
  50. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/pool_change_request.rb +46 -0
  51. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/qos_type.rb +16 -0
  52. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/quota_availability_request.rb +73 -0
  53. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/relationship_status.rb +16 -0
  54. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/replication_object.rb +94 -0
  55. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/replication_schedule.rb +19 -0
  56. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/replication_status.rb +93 -0
  57. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/resource_name_availability_request.rb +72 -0
  58. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/security_style.rb +16 -0
  59. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/service_level.rb +17 -0
  60. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/service_specification.rb +56 -0
  61. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/snapshot.rb +123 -0
  62. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/snapshot_policies_list.rb +55 -0
  63. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/snapshot_policy.rb +156 -0
  64. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/snapshot_policy_details.rb +156 -0
  65. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/snapshot_policy_patch.rb +156 -0
  66. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/snapshot_policy_volume_list.rb +54 -0
  67. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/snapshots_list.rb +55 -0
  68. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/vault.rb +93 -0
  69. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/vault_list.rb +55 -0
  70. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/volume.rb +387 -0
  71. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/volume_backup_properties.rb +79 -0
  72. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/volume_backups.rb +68 -0
  73. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/volume_list.rb +55 -0
  74. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/volume_patch.rb +178 -0
  75. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/volume_patch_properties_data_protection.rb +50 -0
  76. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/volume_patch_properties_export_policy.rb +58 -0
  77. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/volume_properties_data_protection.rb +74 -0
  78. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/volume_properties_export_policy.rb +58 -0
  79. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/volume_revert.rb +46 -0
  80. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/volume_snapshot_properties.rb +46 -0
  81. data/lib/2020-06-01/generated/azure_mgmt_netapp/models/weekly_schedule.rb +94 -0
  82. data/lib/2020-06-01/generated/azure_mgmt_netapp/module_definition.rb +9 -0
  83. data/lib/2020-06-01/generated/azure_mgmt_netapp/net_app_resource.rb +424 -0
  84. data/lib/2020-06-01/generated/azure_mgmt_netapp/operations.rb +115 -0
  85. data/lib/2020-06-01/generated/azure_mgmt_netapp/pools.rb +737 -0
  86. data/lib/2020-06-01/generated/azure_mgmt_netapp/snapshot_policies.rb +700 -0
  87. data/lib/2020-06-01/generated/azure_mgmt_netapp/snapshots.rb +794 -0
  88. data/lib/2020-06-01/generated/azure_mgmt_netapp/vaults.rb +128 -0
  89. data/lib/2020-06-01/generated/azure_mgmt_netapp/volumes.rb +2023 -0
  90. data/lib/azure_mgmt_netapp.rb +1 -0
  91. data/lib/profiles/latest/modules/netapp_profile_module.rb +229 -107
  92. data/lib/version.rb +1 -1
  93. metadata +82 -2
@@ -0,0 +1,79 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::NetApp::Mgmt::V2020_06_01
7
+ module Models
8
+ #
9
+ # Volume Backup Properties
10
+ #
11
+ class VolumeBackupProperties
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [String] Backup Policy Resource ID
16
+ attr_accessor :backup_policy_id
17
+
18
+ # @return [Boolean] Policy Enforced
19
+ attr_accessor :policy_enforced
20
+
21
+ # @return [String] Vault Resource ID
22
+ attr_accessor :vault_id
23
+
24
+ # @return [Boolean] Backup Enabled
25
+ attr_accessor :backup_enabled
26
+
27
+
28
+ #
29
+ # Mapper for VolumeBackupProperties class as Ruby Hash.
30
+ # This will be used for serialization/deserialization.
31
+ #
32
+ def self.mapper()
33
+ {
34
+ client_side_validation: true,
35
+ required: false,
36
+ serialized_name: 'volumeBackupProperties',
37
+ type: {
38
+ name: 'Composite',
39
+ class_name: 'VolumeBackupProperties',
40
+ model_properties: {
41
+ backup_policy_id: {
42
+ client_side_validation: true,
43
+ required: false,
44
+ serialized_name: 'backupPolicyId',
45
+ type: {
46
+ name: 'String'
47
+ }
48
+ },
49
+ policy_enforced: {
50
+ client_side_validation: true,
51
+ required: false,
52
+ serialized_name: 'policyEnforced',
53
+ type: {
54
+ name: 'Boolean'
55
+ }
56
+ },
57
+ vault_id: {
58
+ client_side_validation: true,
59
+ required: false,
60
+ serialized_name: 'vaultId',
61
+ type: {
62
+ name: 'String'
63
+ }
64
+ },
65
+ backup_enabled: {
66
+ client_side_validation: true,
67
+ required: false,
68
+ serialized_name: 'backupEnabled',
69
+ type: {
70
+ name: 'Boolean'
71
+ }
72
+ }
73
+ }
74
+ }
75
+ }
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,68 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::NetApp::Mgmt::V2020_06_01
7
+ module Models
8
+ #
9
+ # Volume details using the backup policy
10
+ #
11
+ class VolumeBackups
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [String] Volume name
16
+ attr_accessor :volume_name
17
+
18
+ # @return [Integer] Total count of backups for volume
19
+ attr_accessor :backups_count
20
+
21
+ # @return [Boolean] Policy enabled
22
+ attr_accessor :policy_enabled
23
+
24
+
25
+ #
26
+ # Mapper for VolumeBackups class as Ruby Hash.
27
+ # This will be used for serialization/deserialization.
28
+ #
29
+ def self.mapper()
30
+ {
31
+ client_side_validation: true,
32
+ required: false,
33
+ serialized_name: 'volumeBackups',
34
+ type: {
35
+ name: 'Composite',
36
+ class_name: 'VolumeBackups',
37
+ model_properties: {
38
+ volume_name: {
39
+ client_side_validation: true,
40
+ required: false,
41
+ serialized_name: 'volumeName',
42
+ type: {
43
+ name: 'String'
44
+ }
45
+ },
46
+ backups_count: {
47
+ client_side_validation: true,
48
+ required: false,
49
+ serialized_name: 'backupsCount',
50
+ type: {
51
+ name: 'Number'
52
+ }
53
+ },
54
+ policy_enabled: {
55
+ client_side_validation: true,
56
+ required: false,
57
+ serialized_name: 'policyEnabled',
58
+ type: {
59
+ name: 'Boolean'
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,55 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::NetApp::Mgmt::V2020_06_01
7
+ module Models
8
+ #
9
+ # List of volume resources
10
+ #
11
+ class VolumeList
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [Array<Volume>] List of volumes
16
+ attr_accessor :value
17
+
18
+
19
+ #
20
+ # Mapper for VolumeList class as Ruby Hash.
21
+ # This will be used for serialization/deserialization.
22
+ #
23
+ def self.mapper()
24
+ {
25
+ client_side_validation: true,
26
+ required: false,
27
+ serialized_name: 'volumeList',
28
+ type: {
29
+ name: 'Composite',
30
+ class_name: 'VolumeList',
31
+ model_properties: {
32
+ value: {
33
+ client_side_validation: true,
34
+ required: false,
35
+ serialized_name: 'value',
36
+ type: {
37
+ name: 'Sequence',
38
+ element: {
39
+ client_side_validation: true,
40
+ required: false,
41
+ serialized_name: 'VolumeElementType',
42
+ type: {
43
+ name: 'Composite',
44
+ class_name: 'Volume'
45
+ }
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,178 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::NetApp::Mgmt::V2020_06_01
7
+ module Models
8
+ #
9
+ # Volume patch resource
10
+ #
11
+ class VolumePatch
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [String] Resource location
16
+ attr_accessor :location
17
+
18
+ # @return [String] Resource Id
19
+ attr_accessor :id
20
+
21
+ # @return [String] Resource name
22
+ attr_accessor :name
23
+
24
+ # @return [String] Resource type
25
+ attr_accessor :type
26
+
27
+ # @return [Hash{String => String}] Resource tags
28
+ attr_accessor :tags
29
+
30
+ # @return [ServiceLevel] serviceLevel. The service level of the file
31
+ # system. Possible values include: 'Standard', 'Premium', 'Ultra'.
32
+ # Default value: 'Premium' .
33
+ attr_accessor :service_level
34
+
35
+ # @return [Integer] usageThreshold. Maximum storage quota allowed for a
36
+ # file system in bytes. This is a soft quota used for alerting only.
37
+ # Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes.
38
+ # Default value: 107374182400 .
39
+ attr_accessor :usage_threshold
40
+
41
+ # @return [VolumePatchPropertiesExportPolicy] exportPolicy. Set of export
42
+ # policy rules
43
+ attr_accessor :export_policy
44
+
45
+ # @return [Float] Maximum throughput in Mibps that can be achieved by
46
+ # this volume.
47
+ attr_accessor :throughput_mibps
48
+
49
+ # @return [VolumePatchPropertiesDataProtection] DataProtection.
50
+ # DataProtection type volumes include an object containing details of the
51
+ # replication
52
+ attr_accessor :data_protection
53
+
54
+
55
+ #
56
+ # Mapper for VolumePatch class as Ruby Hash.
57
+ # This will be used for serialization/deserialization.
58
+ #
59
+ def self.mapper()
60
+ {
61
+ client_side_validation: true,
62
+ required: false,
63
+ serialized_name: 'volumePatch',
64
+ type: {
65
+ name: 'Composite',
66
+ class_name: 'VolumePatch',
67
+ model_properties: {
68
+ location: {
69
+ client_side_validation: true,
70
+ required: false,
71
+ serialized_name: 'location',
72
+ type: {
73
+ name: 'String'
74
+ }
75
+ },
76
+ id: {
77
+ client_side_validation: true,
78
+ required: false,
79
+ read_only: true,
80
+ serialized_name: 'id',
81
+ type: {
82
+ name: 'String'
83
+ }
84
+ },
85
+ name: {
86
+ client_side_validation: true,
87
+ required: false,
88
+ read_only: true,
89
+ serialized_name: 'name',
90
+ type: {
91
+ name: 'String'
92
+ }
93
+ },
94
+ type: {
95
+ client_side_validation: true,
96
+ required: false,
97
+ read_only: true,
98
+ serialized_name: 'type',
99
+ type: {
100
+ name: 'String'
101
+ }
102
+ },
103
+ tags: {
104
+ client_side_validation: true,
105
+ required: false,
106
+ serialized_name: 'tags',
107
+ type: {
108
+ name: 'Dictionary',
109
+ value: {
110
+ client_side_validation: true,
111
+ required: false,
112
+ serialized_name: 'StringElementType',
113
+ type: {
114
+ name: 'String'
115
+ }
116
+ }
117
+ }
118
+ },
119
+ service_level: {
120
+ client_side_validation: true,
121
+ required: false,
122
+ serialized_name: 'properties.serviceLevel',
123
+ default_value: 'Premium',
124
+ type: {
125
+ name: 'String'
126
+ }
127
+ },
128
+ usage_threshold: {
129
+ client_side_validation: true,
130
+ required: false,
131
+ serialized_name: 'properties.usageThreshold',
132
+ default_value: 107374182400,
133
+ constraints: {
134
+ InclusiveMaximum: 109951162777600,
135
+ InclusiveMinimum: 107374182400
136
+ },
137
+ type: {
138
+ name: 'Number'
139
+ }
140
+ },
141
+ export_policy: {
142
+ client_side_validation: true,
143
+ required: false,
144
+ serialized_name: 'properties.exportPolicy',
145
+ type: {
146
+ name: 'Composite',
147
+ class_name: 'VolumePatchPropertiesExportPolicy'
148
+ }
149
+ },
150
+ throughput_mibps: {
151
+ client_side_validation: true,
152
+ required: false,
153
+ serialized_name: 'properties.throughputMibps',
154
+ constraints: {
155
+ InclusiveMaximum: 4500,
156
+ InclusiveMinimum: 1,
157
+ MultipleOf: 0.001
158
+ },
159
+ type: {
160
+ name: 'Double'
161
+ }
162
+ },
163
+ data_protection: {
164
+ client_side_validation: true,
165
+ required: false,
166
+ serialized_name: 'properties.dataProtection',
167
+ type: {
168
+ name: 'Composite',
169
+ class_name: 'VolumePatchPropertiesDataProtection'
170
+ }
171
+ }
172
+ }
173
+ }
174
+ }
175
+ end
176
+ end
177
+ end
178
+ end
@@ -0,0 +1,50 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::NetApp::Mgmt::V2020_06_01
7
+ module Models
8
+ #
9
+ # DataProtection
10
+
11
+ # DataProtection type volumes include an object containing details of the
12
+ # replication
13
+ #
14
+ class VolumePatchPropertiesDataProtection
15
+
16
+ include MsRestAzure
17
+
18
+ # @return [VolumeBackupProperties] Backup. Backup Properties
19
+ attr_accessor :backup
20
+
21
+
22
+ #
23
+ # Mapper for VolumePatchPropertiesDataProtection class as Ruby Hash.
24
+ # This will be used for serialization/deserialization.
25
+ #
26
+ def self.mapper()
27
+ {
28
+ client_side_validation: true,
29
+ required: false,
30
+ serialized_name: 'volumePatchProperties_dataProtection',
31
+ type: {
32
+ name: 'Composite',
33
+ class_name: 'VolumePatchPropertiesDataProtection',
34
+ model_properties: {
35
+ backup: {
36
+ client_side_validation: true,
37
+ required: false,
38
+ serialized_name: 'backup',
39
+ type: {
40
+ name: 'Composite',
41
+ class_name: 'VolumeBackupProperties'
42
+ }
43
+ }
44
+ }
45
+ }
46
+ }
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,58 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::NetApp::Mgmt::V2020_06_01
7
+ module Models
8
+ #
9
+ # exportPolicy
10
+
11
+ # Set of export policy rules
12
+ #
13
+ class VolumePatchPropertiesExportPolicy
14
+
15
+ include MsRestAzure
16
+
17
+ # @return [Array<ExportPolicyRule>] Export policy rule. Export policy
18
+ # rule
19
+ attr_accessor :rules
20
+
21
+
22
+ #
23
+ # Mapper for VolumePatchPropertiesExportPolicy class as Ruby Hash.
24
+ # This will be used for serialization/deserialization.
25
+ #
26
+ def self.mapper()
27
+ {
28
+ client_side_validation: true,
29
+ required: false,
30
+ serialized_name: 'volumePatchProperties_exportPolicy',
31
+ type: {
32
+ name: 'Composite',
33
+ class_name: 'VolumePatchPropertiesExportPolicy',
34
+ model_properties: {
35
+ rules: {
36
+ client_side_validation: true,
37
+ required: false,
38
+ serialized_name: 'rules',
39
+ type: {
40
+ name: 'Sequence',
41
+ element: {
42
+ client_side_validation: true,
43
+ required: false,
44
+ serialized_name: 'ExportPolicyRuleElementType',
45
+ type: {
46
+ name: 'Composite',
47
+ class_name: 'ExportPolicyRule'
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+ end
56
+ end
57
+ end
58
+ end