Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ODATA-1412 - Capabilities vocabulary: Add EntityContainer as annotation target #119

Merged
merged 27 commits into from
Apr 10, 2024
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
6b732f9
Added term DefaultCapabilities
GeraldKrause Apr 16, 2021
d4a50a7
Merge branch 'master' into ODATA-1412
ralfhandl Apr 23, 2021
8afb674
Preview of proposal to facilitate discussion
GeraldKrause Apr 26, 2021
734d288
Merge branch 'master' into ODATA-1412
ralfhandl May 10, 2021
54e4300
Merge branch 'master' into ODATA-1412
ralfhandl May 27, 2021
9308add
Complete definition of term Capabilities.DefaultCapabilties
GeraldKrause Jun 16, 2021
951e182
Renamed base types for default capabilities
ralfhandl Jun 24, 2021
d0fa7a6
Merge branch 'master' into ODATA-1412
ralfhandl Jun 24, 2021
3b73340
Merge branch 'main' into ODATA-1412
ralfhandl Jul 23, 2021
b720b41
Merge branch 'main' into ODATA-1412
ralfhandl Aug 3, 2021
baa690f
Merge branch 'main' into ODATA-1412
ralfhandl Aug 6, 2021
b9cf4d2
Clarified semantics of annotating DefaultCapabilities, aligned with s…
GeraldKrause Aug 19, 2021
f04a8dc
Merge branch 'main' into ODATA-1412
ralfhandl Dec 13, 2021
f4dcfee
Merge branch 'main' into ODATA-1412
ralfhandl Dec 17, 2021
f3f14e0
Merge branch 'main' into ODATA-1412
ralfhandl Feb 3, 2022
e2cc7f7
Merge branch 'main' into ODATA-1412
ralfhandl Feb 10, 2022
aa580ff
Merge remote-tracking branch 'origin/main' into ODATA-1412
HeikoTheissen May 6, 2022
40b6cc0
Merge remote-tracking branch 'origin/main' into ODATA-1412
HeikoTheissen Jun 24, 2022
2f4afa7
Merge branch 'main' into ODATA-1412
HeikoTheissen Aug 31, 2022
37a7c5b
Merge branch 'main' into ODATA-1412
ralfhandl Feb 13, 2024
d1a45da
Merge branch 'main' into ODATA-1412
ralfhandl Feb 29, 2024
788c389
Merge branch 'main' into ODATA-1412
ralfhandl Apr 3, 2024
91af436
Revert unintentional line breaks
ralfhandl Apr 3, 2024
fac2855
Align description with AppliesTo
ralfhandl Apr 3, 2024
cd6033f
Merge remote-tracking branch 'origin/main' into ODATA-1412
HeikoTheissen Apr 10, 2024
5751b33
As aligned with @ralfhandl and @GeraldKrause
HeikoTheissen Apr 10, 2024
94df46a
Merge remote-tracking branch 'origin/main' into ODATA-1412
HeikoTheissen Apr 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
238 changes: 188 additions & 50 deletions vocabularies/Org.OData.Capabilities.V1.json
Original file line number Diff line number Diff line change
Expand Up @@ -174,13 +174,17 @@
],
"@Core.Description": "Change tracking capabilities of this service or entity set"
},
"ChangeTrackingType": {
"ChangeTrackingBase": {
"$Kind": "ComplexType",
"Supported": {
"$Type": "Edm.Boolean",
"$DefaultValue": true,
"@Core.Description": "This entity set supports the odata.track-changes preference"
},
"@Core.Description": "odata.track-changes preference is supported"
}
},
"ChangeTrackingType": {
"$Kind": "ComplexType",
"$BaseType": "Capabilities.ChangeTrackingBase",
"FilterableProperties": {
"$Collection": true,
"$Type": "Edm.PropertyPath",
Expand All @@ -199,19 +203,22 @@
"$Type": "Capabilities.CountRestrictionsType",
"$AppliesTo": [
"EntitySet",
"Singleton",
"Collection"
],
"@Core.AppliesViaContainer": true,
"@Core.Description": "Restrictions on /$count path suffix and $count=true system query option"
},
"CountRestrictionsType": {
"CountRestrictionsBase": {
"$Kind": "ComplexType",
"Countable": {
"$Type": "Edm.Boolean",
"$DefaultValue": true,
"@Core.Description": "Entities can be counted (only valid if targeting an entity set)"
},
"@Core.Description": "Entities can be counted (only valid if targeting a collection)"
}
},
"CountRestrictionsType": {
"$Kind": "ComplexType",
"$BaseType": "Capabilities.CountRestrictionsBase",
"NonCountableProperties": {
"$Collection": true,
"$Type": "Edm.PropertyPath",
Expand Down Expand Up @@ -546,7 +553,7 @@
"@Core.AppliesViaContainer": true,
"@Core.Description": "Restrictions on filter expressions"
},
"FilterRestrictionsType": {
"FilterRestrictionsBase": {
"$Kind": "ComplexType",
"@Validation.ApplicableTerms": [
"Core.Description"
Expand All @@ -561,6 +568,15 @@
"$DefaultValue": false,
"@Core.Description": "$filter is required"
},
"MaxLevels": {
"$Type": "Edm.Int32",
"$DefaultValue": -1,
"@Core.Description": "The maximum number of levels (including recursion) that can be traversed in a filter expression. A value of -1 indicates there is no restriction."
}
},
"FilterRestrictionsType": {
"$Kind": "ComplexType",
"$BaseType": "Capabilities.FilterRestrictionsBase",
"RequiredProperties": {
"$Collection": true,
"$Type": "Edm.PropertyPath",
Expand All @@ -575,11 +591,6 @@
"$Collection": true,
"$Type": "Capabilities.FilterExpressionRestrictionType",
"@Core.Description": "These properties only allow a subset of filter expressions. A valid filter expression for a single property can be enclosed in parentheses and combined by `and` with valid expressions for other properties."
},
"MaxLevels": {
"$Type": "Edm.Int32",
"$DefaultValue": -1,
"@Core.Description": "The maximum number of levels (including recursion) that can be traversed in a filter expression. A value of -1 indicates there is no restriction."
}
},
"FilterExpressionRestrictionType": {
Expand Down Expand Up @@ -637,7 +648,7 @@
"@Core.AppliesViaContainer": true,
"@Core.Description": "Restrictions on orderby expressions"
},
"SortRestrictionsType": {
"SortRestrictionsBase": {
"$Kind": "ComplexType",
"@Validation.ApplicableTerms": [
"Core.Description"
Expand All @@ -646,7 +657,11 @@
"$Type": "Edm.Boolean",
"$DefaultValue": true,
"@Core.Description": "$orderby is supported"
},
}
},
"SortRestrictionsType": {
"$Kind": "ComplexType",
"$BaseType": "Capabilities.SortRestrictionsBase",
"AscendingOnlyProperties": {
"$Collection": true,
"$Type": "Edm.PropertyPath",
Expand Down Expand Up @@ -674,7 +689,7 @@
"@Core.AppliesViaContainer": true,
"@Core.Description": "Restrictions on expand expressions"
},
"ExpandRestrictionsType": {
"ExpandRestrictionsBase": {
"$Kind": "ComplexType",
"@Validation.ApplicableTerms": [
"Core.Description"
Expand All @@ -689,6 +704,15 @@
"$DefaultValue": false,
"@Core.Description": "$expand is supported for stream properties and media streams"
},
"MaxLevels": {
"$Type": "Edm.Int32",
"$DefaultValue": -1,
"@Core.Description": "The maximum number of levels that can be expanded in a expand expression. A value of -1 indicates there is no restriction."
}
},
"ExpandRestrictionsType": {
"$Kind": "ComplexType",
"$BaseType": "Capabilities.ExpandRestrictionsBase",
"NonExpandableProperties": {
"$Collection": true,
"$Type": "Edm.NavigationPropertyPath",
Expand All @@ -699,11 +723,6 @@
"$Type": "Edm.PropertyPath",
"@Core.Description": "These stream properties cannot be used in expand expressions",
"@Core.RequiresType": "Edm.Stream"
},
"MaxLevels": {
"$Type": "Edm.Int32",
"$DefaultValue": -1,
"@Core.Description": "The maximum number of levels that can be expanded in a expand expression. A value of -1 indicates there is no restriction."
}
},
"SearchRestrictions": {
Expand Down Expand Up @@ -776,28 +795,13 @@
"@Core.AppliesViaContainer": true,
"@Core.Description": "Restrictions on insert operations"
},
"InsertRestrictionsType": {
"InsertRestrictionsBase": {
"$Kind": "ComplexType",
"Insertable": {
"$Type": "Edm.Boolean",
"$DefaultValue": true,
"@Core.Description": "Entities can be inserted"
},
"NonInsertableProperties": {
"$Collection": true,
"$Type": "Edm.PropertyPath",
"@Core.Description": "These structural properties cannot be specified on insert"
},
"NonInsertableNavigationProperties": {
"$Collection": true,
"$Type": "Edm.NavigationPropertyPath",
"@Core.Description": "These navigation properties do not allow deep inserts"
},
"RequiredProperties": {
"$Collection": true,
"$Type": "Edm.PropertyPath",
"@Core.Description": "These structural properties must be specified on insert"
},
"MaxLevels": {
"$Type": "Edm.Int32",
"$DefaultValue": -1,
Expand All @@ -808,12 +812,6 @@
"$DefaultValue": true,
"@Core.Description": "Entities of a specific derived type can be created by specifying a type-cast segment"
},
"Permissions": {
"$Collection": true,
"$Type": "Capabilities.PermissionType",
"$Nullable": true,
"@Core.Description": "Required permissions. One of the specified sets of scopes is required to perform the insert."
},
"QueryOptions": {
"$Type": "Capabilities.ModificationQueryOptionsType",
"$Nullable": true,
Expand Down Expand Up @@ -845,6 +843,31 @@
"@Core.Description": "Possible error responses returned by the request."
}
},
"InsertRestrictionsType": {
"$Kind": "ComplexType",
"$BaseType": "Capabilities.InsertRestrictionsBase",
"NonInsertableProperties": {
"$Collection": true,
"$Type": "Edm.PropertyPath",
"@Core.Description": "These structural properties cannot be specified on insert"
},
"NonInsertableNavigationProperties": {
"$Collection": true,
"$Type": "Edm.NavigationPropertyPath",
"@Core.Description": "These navigation properties do not allow deep inserts"
},
"RequiredProperties": {
"$Collection": true,
"$Type": "Edm.PropertyPath",
"@Core.Description": "These structural properties must be specified on insert"
},
"Permissions": {
"$Collection": true,
"$Type": "Capabilities.PermissionType",
"$Nullable": true,
"@Core.Description": "Required permissions. One of the specified sets of scopes is required to perform the insert."
}
},
"PermissionType": {
"$Kind": "ComplexType",
"SchemeName": {
Expand Down Expand Up @@ -904,7 +927,7 @@
"@Core.AppliesViaContainer": true,
"@Core.Description": "Restrictions on update operations"
},
"UpdateRestrictionsType": {
"UpdateRestrictionsBase": {
"$Kind": "ComplexType",
"Updatable": {
"$Type": "Edm.Boolean",
Expand Down Expand Up @@ -993,6 +1016,25 @@
"@Core.Description": "Possible error responses returned by the request."
}
},
"UpdateRestrictionsType": {
"$Kind": "ComplexType",
"$BaseType": "Capabilities.UpdateRestrictionsBase",
"NonUpdatableProperties": {
"$Collection": true,
"$Type": "Edm.PropertyPath",
"@Core.Description": "These structural properties cannot be specified on update"
},
"NonUpdatableNavigationProperties": {
"$Collection": true,
"$Type": "Edm.NavigationPropertyPath",
"@Core.Description": "These navigation properties do not allow rebinding"
},
"RequiredProperties": {
"$Collection": true,
"$Type": "Edm.PropertyPath",
"@Core.Description": "These structural properties must be specified on update"
}
},
"HttpMethod": {
"$Kind": "EnumType",
"$IsFlags": true,
Expand Down Expand Up @@ -1046,18 +1088,13 @@
"@Core.AppliesViaContainer": true,
"@Core.Description": "Restrictions on delete operations"
},
"DeleteRestrictionsType": {
"DeleteRestrictionsBase": {
"$Kind": "ComplexType",
"Deletable": {
"$Type": "Edm.Boolean",
"$DefaultValue": true,
"@Core.Description": "Entities can be deleted"
},
"NonDeletableNavigationProperties": {
"$Collection": true,
"$Type": "Edm.NavigationPropertyPath",
"@Core.Description": "These navigation properties do not allow DeleteLink requests"
},
"MaxLevels": {
"$Type": "Edm.Int32",
"$DefaultValue": -1,
Expand Down Expand Up @@ -1105,6 +1142,15 @@
"@Core.Description": "Possible error responses returned by the request."
}
},
"DeleteRestrictionsType": {
"$Kind": "ComplexType",
"$BaseType": "Capabilities.DeleteRestrictionsBase",
"NonDeletableNavigationProperties": {
"$Collection": true,
"$Type": "Edm.NavigationPropertyPath",
"@Core.Description": "These navigation properties do not allow DeleteLink requests"
}
},
"CollectionPropertyRestrictions": {
"$Kind": "Term",
"$Collection": true,
Expand Down Expand Up @@ -1428,6 +1474,98 @@
"@Core.RequiresType": "Edm.Stream",
"@Core.Description": "Stream property or media stream supports update of its media edit URL and/or media read URL"
},
"DefaultCapabilities": {
"$Kind": "Term",
"$Type": "Capabilities.DefaultCapabilitiesType",
"$AppliesTo": [
"EntityContainer"
],
"@Core.Description": "Default capability settings for all collection-valued resources in the container",
"@Core.LongDescription": "Annotating a specific capability term, which is included as property in `DefaultCapabilitiesType`, for a specific collection-valued resource overrides the default capability with the specified properties using PATCH semantics:\n\n- Primitive or collection-valued properties specified in the specific capability term replace the corresponding properties specified in `DefaultCapabilities`\n\n- Complex-valued properties specified in the specific capability term override the corresponding properties specified in `DefaultCapabilities` using PATCH semantics recursively\n\n- Properties specified neither in the specific term nor in `DefaultCapabilities` have their default value\n "
},
"DefaultCapabilitiesType": {
"$Kind": "ComplexType",
"ChangeTracking": {
"$Type": "Capabilities.ChangeTrackingBase",
"$Nullable": true,
"@Core.Description": "Change tracking capabilities"
},
"CountRestrictions": {
"$Type": "Capabilities.CountRestrictionsBase",
"$Nullable": true,
"@Core.Description": "Restrictions on /$count path suffix and $count=true system query option"
},
"IndexableByKey": {
"$Type": "Core.Tag",
"$Nullable": true,
"@Core.Description": "Supports key values according to OData URL conventions"
},
"TopSupported": {
"$Type": "Core.Tag",
"$Nullable": true,
"@Core.Description": "Supports $top"
},
"SkipSupported": {
"$Type": "Core.Tag",
"$Nullable": true,
"@Core.Description": "Supports $skip"
},
"ComputeSupported": {
"$Type": "Core.Tag",
"$Nullable": true,
"@Core.Description": "Supports $compute"
},
"SelectSupport": {
"$Type": "Capabilities.SelectSupportType",
"$Nullable": true,
"@Core.Description": "Support for $select and nested query options within $select"
},
"FilterRestrictions": {
"$Type": "Capabilities.FilterRestrictionsBase",
"$Nullable": true,
"@Core.Description": "Restrictions on filter expressions"
},
"SortRestrictions": {
"$Type": "Capabilities.SortRestrictionsBase",
"$Nullable": true,
"@Core.Description": "Restrictions on orderby expressions"
},
"ExpandRestrictions": {
"$Type": "Capabilities.ExpandRestrictionsBase",
"$Nullable": true,
"@Core.Description": "Restrictions on expand expressions"
},
"SearchRestrictions": {
"$Type": "Capabilities.SearchRestrictionsType",
"$Nullable": true,
"@Core.Description": "Restrictions on search expressions"
},
"InsertRestrictions": {
"$Type": "Capabilities.InsertRestrictionsBase",
"$Nullable": true,
"@Core.Description": "Restrictions on insert operations"
},
"UpdateRestrictions": {
"$Type": "Capabilities.UpdateRestrictionsBase",
"$Nullable": true,
"@Core.Description": "Restrictions on update operations"
},
"DeleteRestrictions": {
"$Type": "Capabilities.DeleteRestrictionsBase",
"$Nullable": true,
"@Core.Description": "Restrictions on delete operations"
},
"OperationRestrictions": {
"$Type": "Capabilities.OperationRestrictionsType",
"$Nullable": true,
"@Core.Description": "Restrictions for function or action operations"
},
"ReadRestrictions": {
"$Type": "Capabilities.ReadRestrictionsType",
"$Nullable": true,
"@Core.Description": "Restrictions for retrieving a collection of entities, retrieving a singleton instance"
}
},
"HttpResponse": {
"$Kind": "ComplexType",
"StatusCode": {
Expand Down
Loading