From a8577656f273be8cc51275a59acd70420fca6e11 Mon Sep 17 00:00:00 2001 From: Cody Rodgers Date: Thu, 1 Sep 2022 11:59:47 -0400 Subject: [PATCH] 10.1.3.0 (#9) * Add a custom computed index field for the video labels field to support full text search * Content updates * Mock a response for the GetLabels method until support for labels is actually enabled * Add a pull pipeline for labels * Content Updates * Update the video pull/push pipelines to support labels * Content updates * Add pipeline processor for resolving labels * Add support for updating labels (renaming) labels * Add support for deleting labels and some bug fixes/tweaks * Content changes * Enable full text search for the new brightcove folder field * Content updates * Create pull pipeline for folders * Content updates * Create push pipeline for folders * Content updates * Add support for syncing the folder field on video items * Content updates * Add a computed index field for the video folder field * Content updates * Content updates * Add 10.1.3 package manifest to solution Co-authored-by: Cody Rodgers --- Brightcove.Core/Brightcove.Core.csproj | 3 + Brightcove.Core/Models/Folder.cs | 37 + Brightcove.Core/Models/Label.cs | 73 + Brightcove.Core/Models/Labels.cs | 25 + Brightcove.Core/Models/Video.cs | 6 + Brightcove.Core/Services/BrightcoveService.cs | 214 ++- .../Brightcove.DataExchangeFramework.csproj | 11 + .../FolderPropertyValueAccessorConverter.cs | 49 + .../LabelsPropertyValueAccessorConverter.cs | 49 + .../Helpers/ItemUpdater.cs | 1 + .../GetFoldersPipelineStepProcessor.cs | 43 + .../GetLabelsPipelineStepProcessor.cs | 43 + .../ResolveAssetItemPipelineStepProcessor.cs | 15 +- ...ResolveFolderModelPipelineStepProcessor.cs | 84 + .../ResolveLabelModelPipelineStepProcessor.cs | 94 + .../UpdateFolderModelPipelineStepProcessor.cs | 97 + .../UpdateLabelModelPipelineStepProcessor.cs | 98 + .../UpdateVideoModelPipelineStepProcessor.cs | 31 +- .../SearchResults/AssetSearchResult.cs | 4 + .../ValueReaders/FolderPropertyValueReader.cs | 92 + .../ValueReaders/LabelsPropertyValueReader.cs | 102 + .../ValueWriters/LabelsPropertyValueWriter.cs | 35 + .../Brightcove/Brightcove.Settings.CM.config | 22 +- Brightcove.Web/Brightcove.Web.csproj | 2 + .../ComputedFields/FolderComputedField.cs | 33 + .../ComputedFields/LabelsComputedField.cs | 37 + .../brightcove.video.connect.10.1.3.0.xml | 1700 +++++++++++++++++ .../BrightcoveAccount/_name/Folders.yml | 19 + .../BrightcoveAccount/_name/Labels.yml | 19 + .../Apply Asset Model Source Mappi.yml | 2 +- .../Apply Playlist Model Source Ma.yml | 2 +- .../Short Description Field Mappin.yml | 2 +- .../Display Name Field Mapping.yml | 26 + .../Apply Asset Model Source Mappi.yml | 2 +- .../Apply Experience Model Source_.yml | 2 +- .../LastSyncTime Property Mapping.yml | 26 + .../Custom Fields Field Mapping.yml | 2 +- .../Long Description Field Mapping.yml | 2 +- .../Apply Asset Model Source Mappi.yml | 2 +- .../Apply Player Model Source Mapp.yml | 2 +- .../Image_Thumbnail_Src Property M.yml | 2 +- .../LastSyncTime Property Mapping.yml | 2 +- .../ReferenceId Property Mapping.yml | 2 +- .../ShortDescription Property Mapp.yml | 2 +- .../Apply Asset Item Source Mappin.yml | 2 +- .../Apply Playlist Item Source Map.yml | 2 +- .../Apply Folder Model Source Mapp.yml | 32 + .../Custom Fields Field Mapping.yml | 2 +- .../Long Description Field Mapping.yml | 2 +- .../Playlist Type Field Mapping.yml | 2 +- .../Tag Inclusion Field Mapping.yml | 2 +- .../Apply Asset Item Source Mappin.yml | 2 +- .../Apply Player Item Source Mappi.yml | 2 +- .../Brightcove/Folder Model Properties.yml | 18 + .../Folder Model Properties/Id Property.yml | 22 + .../LastSyncTime Property.yml | 22 + .../Folder Model Properties/Name Property.yml | 22 + .../Brightcove/Label Model Properties.yml | 18 + .../LastSyncTime Property.yml | 22 + .../NewLabel Property.yml | 22 + .../Label Model Properties/Path Property.yml | 22 + .../SitecoreName Property.yml | 22 + .../Folder Property.yml | 22 + .../Labels Property.yml | 25 + .../Providers/Sitecore/Folder Item Fields.yml | 18 + .../Sitecore/Folder Item Fields/ID Field.yml | 22 + .../Folder Item Fields/LastSyncTime Field.yml | 22 + .../Folder Item Fields/Name Field.yml | 22 + .../Providers/Sitecore/Label Item Fields.yml | 18 + .../Label Item Fields/Display Name Field.yml | 22 + .../Label Item Fields/Label Field.yml | 22 + .../Last Synchronization Time Fiel.yml | 22 + .../Label Item Fields/NewLabel Field.yml | 22 + .../BrightcoveFolder Field.yml | 22 + .../Video Item Fields/Labels Field.yml | 22 + .../Pipeline Batches/Pull Pipeline Batch.yml | 10 +- .../Pipeline Batches/Push Pipeline Batch.yml | 8 +- .../Pipeline Batches/Sync Pipeline Batch.yml | 15 +- .../_name/Pipelines/Pull Pipelines.yml | 18 + .../Pull Experiences Pipeline.yml | 4 +- .../Get Experiences.yml | 4 +- .../Update Experience Items.yml | 4 +- .../Pull Pipelines/Pull Folders Pipeline.yml | 22 + .../Pull Folders Pipeline/Get Folders.yml | 24 + .../Update Folder Items.yml | 30 + .../Pull Pipelines/Pull Labels Pipeline.yml | 22 + .../Pull Labels Pipeline/Get Labels.yml | 21 + .../Update Label Items.yml | 26 + .../Pull Players Pipeline.yml | 4 +- .../Pull Players Pipeline/Get Players.yml | 7 +- .../Update Player Items.yml | 4 +- .../Pull Playlists Pipeline.yml | 4 +- .../Pull Playlists Pipeline/Get Playlists.yml | 2 +- .../Update Playlist Items.yml | 2 +- .../Pull Videos Pipeline.yml | 4 +- .../Pull Videos Pipeline/Get Videos.yml | 2 +- .../Update Video Items.yml | 2 +- .../_name/Pipelines/Push Pipelines.yml | 18 + .../Push Pipelines/Push Folders Pipeline.yml | 22 + .../Read Folder Items.yml | 34 + .../Update Folder Models.yml | 33 + .../Push Pipelines/Push Labels Pipeline.yml | 22 + .../Push Labels Pipeline/Read Label Items.yml | 34 + .../Update Label Models.yml | 33 + .../Push Players Pipeline.yml | 4 +- .../Read Player Items.yml | 4 +- .../Update Player Models.yml | 4 +- .../Push Playlists Pipeline.yml | 4 +- .../Read Playlist Items.yml | 2 +- .../Update Playlist Models.yml | 2 +- .../Push Videos Pipeline.yml | 4 +- .../Push Videos Pipeline/Read Video Items.yml | 2 +- .../Update Video Models.yml | 2 +- .../Subpipelines/Update Item Pipelines.yml | 18 + .../Update Experience Items Pipeli.yml | 4 +- .../Resolve Experience Item.yml | 4 +- .../Update Experience Item.yml | 2 +- .../Update Folder Items Pipeline.yml | 22 + .../Resolve Folder Item.yml | 48 + .../Update Folder Item.yml | 31 + .../Update Label Items Pipeline.yml | 22 + .../Resolve Label Item.yml | 48 + .../Update Label Item.yml | 31 + .../Update Player Items Pipeline.yml | 4 +- .../Resolve Player Item.yml | 4 +- .../Update Player Item.yml | 2 +- .../Update Playlist Items Pipeline.yml | 4 +- .../Resolve Playlist Item.yml | 2 +- .../Update Playlist Item.yml | 2 +- .../Update Video Items Pipeline.yml | 4 +- .../Resolve Video Item.yml | 2 +- .../Update Video Item.yml | 2 +- .../Subpipelines/Update Model Pipelines.yml | 18 + .../Update Folder Models Pipeline.yml | 22 + .../Resolve Folder Model.yml | 24 + .../Update Folder Model.yml | 28 + .../Update Label Models Pipeline.yml | 22 + .../Resolve Label Model.yml | 21 + .../Update Label Model.yml | 28 + .../Update Player Models Pipeline.yml | 4 +- .../Resolve Player Model.yml | 13 +- .../Update Player Model.yml | 10 +- .../Update Playlist Models Pipelin.yml | 4 +- .../Resolve Playlist Model.yml | 2 +- .../Update Playlist Model.yml | 2 +- .../Update Video Models Pipeline.yml | 4 +- .../Resolve Video Model.yml | 4 +- .../Update Video Model.yml | 4 +- .../Item Source Mapping Sets.yml | 18 + .../Asset Item Source Mapping Set.yml | 4 +- .../Name Field Mapping.yml | 2 +- .../Reference Id Field Mapping.yml | 2 +- .../Experience Item Source Mapping.yml | 4 +- .../Folder Item Source Mapping set.yml | 18 + .../ID Field Mapping.yml | 26 + .../Name Field Mapping.yml | 26 + .../Label Item Source Mapping Set.yml | 18 + .../Label Field Mapping.yml | 26 + .../New Label Field Mapping.yml | 26 + .../Player Item Source Mapping Set.yml | 4 +- .../Playlist Item Source Mapping S.yml | 4 +- .../Filter Tags Field Mapping.yml | 2 +- .../Video Ids Field Mapping.yml | 2 +- .../Video Item Source Mapping Set.yml | 4 +- .../Economics Field Mapping.yml | 2 +- .../Labels Field Mapping.yml | 26 + .../Tags Field Mapping.yml | 2 +- .../Video Variant Item Source Mapp.yml | 4 +- .../Description Field Mapping.yml | 2 +- .../Language Field Mapping.yml | 2 +- .../Name Field Mapping.yml | 2 +- .../Model Source Mapping Sets.yml | 18 + .../Asset Model Source Mapping Set.yml | 4 +- .../Id Property Mapping.yml | 2 +- .../Name Property Mapping.yml | 2 +- .../Experience Model Source Mappin.yml | 4 +- .../Url Proprety Mapping.yml | 4 +- .../Folder Model Source Mapping Se.yml | 18 + .../Id Property Mapping.yml | 26 + .../Name Property Mapping.yml | 26 + .../Label Model Source Mapping Set.yml | 18 + .../LastSyncTime Property.yml | 26 + .../Path Property Mapping.yml | 26 + .../Player Model Source Mapping Se.yml | 4 +- .../Playlist Model Source Mapping_.yml | 4 +- .../Video Model Source Mapping Set.yml | 4 +- .../Folder Property Mapping.yml | 30 + .../Labels Property Mapping.yml | 26 + .../Tags Property Mapping.yml | 2 +- .../Video Variant Model Source Map.yml | 4 +- .../Name Property Mapping.yml | 2 +- .../Apply Label Item Source Mappin.yml | 32 + .../CreationDate Proprety Mapping.yml | 2 +- .../Favorite Property Mapping.yml | 2 +- .../LastModifiedDate Property Mapp.yml | 2 +- .../PlayListSearch_FilterTags.yml | 2 +- .../PlayListSearch_TagInclusion.yml | 2 +- .../PlaylistType Property Mapping.yml | 2 +- .../VideoIds Property Mapping.yml | 2 +- .../Apply Label Model Source Mappi.yml | 32 + .../CustomFields Property Mapping.yml | 2 +- .../Description Property Mapping.yml | 2 +- .../Language Property Mapping.yml | 2 +- .../LongDescription Property Mappi.yml | 2 +- .../CreationDate Property Mapping.yml | 2 +- .../CustomFields Property Mapping.yml | 2 +- .../Duration Property Mapping.yml | 2 +- .../Economics Property Mapping.yml | 2 +- .../Images_Poster_Src Property Map.yml | 2 +- .../LastModifiedDate Property Mapp.yml | 2 +- .../Link_Text Property Mapping.yml | 2 +- .../Link_URL Property Mapping.yml | 2 +- .../LongDescription Property Mappi.yml | 2 +- .../PublishedDate Property Mapping.yml | 2 +- .../Sharing_ByExternalAcct Propert.yml | 2 +- .../Sharing_ById Property Mapping.yml | 2 +- .../Sharing_ByReference Property M.yml | 2 +- .../Sharing_SourceId Property Mapp.yml | 2 +- .../Sharing_ToExternalAcct Propert.yml | 2 +- .../Folder Property Value Accessor.yml | 34 + .../Property.yml | 18 + .../Property/PropertyName.yml | 29 + .../__Standard Values.yml | 22 + .../Labels Property Value Accessor.yml | 34 + .../Property.yml | 18 + .../Property/PropertyName.yml | 29 + .../__Standard Values.yml | 22 + .../Get Labels Pipeline Step.yml | 25 + .../Get Labels Pipeline Step/Settings.yml | 14 + .../Settings/EndpointFrom.yml | 24 + .../__Standard Values.yml | 25 + .../Resolve Folder Model Pipeline_.yml | 28 + .../Settings.yml | 14 + .../Settings/AssetItemLocation.yml | 35 + .../Settings/AssetModelLocation.yml | 35 + .../Settings/EndpointFrom.yml | 24 + .../__Standard Values.yml | 34 + .../Resolve Label Model Pipeline S.yml | 28 + .../Settings.yml | 14 + .../Settings/AssetItemLocation.yml | 35 + .../Settings/AssetModelLocation.yml | 35 + .../Settings/EndpointFrom.yml | 24 + .../__Standard Values.yml | 34 + .../Update Folder Model Pipeline S.yml | 28 + .../Settings.yml | 14 + .../Settings/AssetItemLocation.yml | 35 + .../Settings/AssetModelLocation.yml | 35 + .../Settings/EndpointFrom.yml | 24 + .../__Standard Values.yml | 34 + .../Update Label Model Pipeline St.yml | 28 + .../Settings.yml | 14 + .../Settings/AssetItemLocation.yml | 35 + .../Settings/AssetModelLocation.yml | 35 + .../Settings/EndpointFrom.yml | 24 + .../__Standard Values.yml | 34 + .../Brightcove Experience Data/ID.yml | 7 + .../Brightcove/Brightcove Folder.yml | 24 + .../Brightcove/Brightcove Folder/Metadata.yml | 14 + .../Brightcove Folder/Metadata/ID.yml | 25 + .../Brightcove Folder/Metadata/Name.yml | 25 + .../Brightcove Folder/__Standard Values.yml | 22 + .../Brightcove/Brightcove Video Label.yml | 27 + .../Brightcove Video Label/Metadata.yml | 14 + .../Brightcove Video Label/Metadata/Label.yml | 29 + .../Metadata/NewLabel.yml | 32 + .../Metadata/NewPath.yml | 32 + .../__Standard Values.yml | 18 + .../Synchronization/LastSyncTime.yml | 4 + .../BrightcoveFolder.yml | 28 + .../Brightcove Video Data/Labels.yml | 28 + .../Sharing/By External Account.yml | 4 + .../BrightcoveVideo/Sharing/By ID.yml | 4 + .../BrightcoveVideo/Sharing/By Reference.yml | 4 + .../BrightcoveVideo/Sharing/Source ID.yml | 4 + .../Sharing/To External Account.yml | 4 + 275 files changed, 6281 insertions(+), 198 deletions(-) create mode 100644 Brightcove.Core/Models/Folder.cs create mode 100644 Brightcove.Core/Models/Label.cs create mode 100644 Brightcove.Core/Models/Labels.cs create mode 100644 Brightcove.DataExchangeFramework/Converters/FolderPropertyValueAccessorConverter.cs create mode 100644 Brightcove.DataExchangeFramework/Converters/LabelsPropertyValueAccessorConverter.cs create mode 100644 Brightcove.DataExchangeFramework/Processors/GetFoldersPipelineStepProcessor.cs create mode 100644 Brightcove.DataExchangeFramework/Processors/GetLabelsPipelineStepProcessor.cs create mode 100644 Brightcove.DataExchangeFramework/Processors/ResolveFolderModelPipelineStepProcessor.cs create mode 100644 Brightcove.DataExchangeFramework/Processors/ResolveLabelModelPipelineStepProcessor.cs create mode 100644 Brightcove.DataExchangeFramework/Processors/UpdateFolderModelPipelineStepProcessor.cs create mode 100644 Brightcove.DataExchangeFramework/Processors/UpdateLabelModelPipelineStepProcessor.cs create mode 100644 Brightcove.DataExchangeFramework/ValueReaders/FolderPropertyValueReader.cs create mode 100644 Brightcove.DataExchangeFramework/ValueReaders/LabelsPropertyValueReader.cs create mode 100644 Brightcove.DataExchangeFramework/ValueWriters/LabelsPropertyValueWriter.cs create mode 100644 Brightcove.Web/Search/ComputedFields/FolderComputedField.cs create mode 100644 Brightcove.Web/Search/ComputedFields/LabelsComputedField.cs create mode 100644 Installation/brightcove.video.connect.10.1.3.0.xml create mode 100644 Serialization/Brightcove.Template.Branches.Account/BrightcoveAccount/_name/Folders.yml create mode 100644 Serialization/Brightcove.Template.Branches.Account/BrightcoveAccount/_name/Labels.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Pipelines/Subpipelines/Update Playlist Items Pipeline => 062fa6d7-d5d5-424f-b677-900c2da935a6}/Apply Asset Model Source Mappi.yml (82%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Pipelines/Subpipelines/Update Playlist Items Pipeline => 062fa6d7-d5d5-424f-b677-900c2da935a6}/Apply Playlist Model Source Ma.yml (80%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Asset Item Source Mapping Set => 1df66a16-5548-44a2-9a91-d2c1bd8f7a80}/Short Description Field Mappin.yml (84%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/289a1f12-65dd-44c8-ae6b-a08670e91852/Display Name Field Mapping.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Pipelines/Subpipelines/Update Experience Items Pipeli => 2f977a04-220d-42b5-a313-9fe622f60bca}/Apply Asset Model Source Mappi.yml (82%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Pipelines/Subpipelines/Update Experience Items Pipeli => 2f977a04-220d-42b5-a313-9fe622f60bca}/Apply Experience Model Source_.yml (82%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/38b6b14a-dc3b-489d-a599-50bbf205052f/LastSyncTime Property Mapping.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Variant Item Source Mapp => 62040163-a48b-4c59-8173-29839853735c}/Custom Fields Field Mapping.yml (82%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Variant Item Source Mapp => 62040163-a48b-4c59-8173-29839853735c}/Long Description Field Mapping.yml (82%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Pipelines/Subpipelines/Update Player Items Pipeline => 66c52e36-fb67-4007-9f8a-94b8a36f94f4}/Apply Asset Model Source Mappi.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Pipelines/Subpipelines/Update Player Items Pipeline => 66c52e36-fb67-4007-9f8a-94b8a36f94f4}/Apply Player Model Source Mapp.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Asset Model Source Mapping Set => 6f7b8f33-05d9-4ef3-b5ee-83d9bdcdac16}/Image_Thumbnail_Src Property M.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Asset Model Source Mapping Set => 6f7b8f33-05d9-4ef3-b5ee-83d9bdcdac16}/LastSyncTime Property Mapping.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Asset Model Source Mapping Set => 6f7b8f33-05d9-4ef3-b5ee-83d9bdcdac16}/ReferenceId Property Mapping.yml (85%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Asset Model Source Mapping Set => 6f7b8f33-05d9-4ef3-b5ee-83d9bdcdac16}/ShortDescription Property Mapp.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Pipelines/Subpipelines/Update Playlist Models Pipelin => 8464ffdd-82c3-49fe-b665-7d520728f3f2}/Apply Asset Item Source Mappin.yml (80%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Pipelines/Subpipelines/Update Playlist Models Pipelin => 8464ffdd-82c3-49fe-b665-7d520728f3f2}/Apply Playlist Item Source Map.yml (80%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/853ba6e4-363f-4e3e-b364-43138acfefca/Apply Folder Model Source Mapp.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Item Source Mapping Set => 8b2089a1-0f6e-4001-b24b-620af0c5227a}/Custom Fields Field Mapping.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Item Source Mapping Set => 8b2089a1-0f6e-4001-b24b-620af0c5227a}/Long Description Field Mapping.yml (82%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Playlist Item Source Mapping S => 8b9d593a-a3fe-4e24-a19a-615c25e18c50}/Playlist Type Field Mapping.yml (82%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Playlist Item Source Mapping S => 8b9d593a-a3fe-4e24-a19a-615c25e18c50}/Tag Inclusion Field Mapping.yml (87%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Pipelines/Subpipelines/Update Player Models Pipeline => 915f8c16-6e0f-4963-9452-75e501e8822a}/Apply Asset Item Source Mappin.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Pipelines/Subpipelines/Update Player Models Pipeline => 915f8c16-6e0f-4963-9452-75e501e8822a}/Apply Player Item Source Mappi.yml (82%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Brightcove/Folder Model Properties.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Brightcove/Folder Model Properties/Id Property.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Brightcove/Folder Model Properties/LastSyncTime Property.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Brightcove/Folder Model Properties/Name Property.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Brightcove/Label Model Properties.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Brightcove/Label Model Properties/LastSyncTime Property.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Brightcove/Label Model Properties/NewLabel Property.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Brightcove/Label Model Properties/Path Property.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Brightcove/Label Model Properties/SitecoreName Property.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Brightcove/Video Model Properties/Folder Property.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Brightcove/Video Model Properties/Labels Property.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Sitecore/Folder Item Fields.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Sitecore/Folder Item Fields/ID Field.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Sitecore/Folder Item Fields/LastSyncTime Field.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Sitecore/Folder Item Fields/Name Field.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Sitecore/Label Item Fields.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Sitecore/Label Item Fields/Display Name Field.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Sitecore/Label Item Fields/Label Field.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Sitecore/Label Item Fields/Last Synchronization Time Fiel.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Sitecore/Label Item Fields/NewLabel Field.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Sitecore/Video Item Fields/BrightcoveFolder Field.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Data Access/Value Accessor Sets/Providers/Sitecore/Video Item Fields/Labels Field.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Pull Pipelines.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Pull Pipelines}/Pull Experiences Pipeline.yml (79%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Pull Pipelines}/Pull Experiences Pipeline/Get Experiences.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Pull Pipelines}/Pull Experiences Pipeline/Update Experience Items.yml (81%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Pull Pipelines/Pull Folders Pipeline.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Pull Pipelines/Pull Folders Pipeline/Get Folders.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Pull Pipelines/Pull Folders Pipeline/Update Folder Items.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Pull Pipelines/Pull Labels Pipeline.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Pull Pipelines/Pull Labels Pipeline/Get Labels.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Pull Pipelines/Pull Labels Pipeline/Update Label Items.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Pull Pipelines}/Pull Players Pipeline.yml (80%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Pull Pipelines}/Pull Players Pipeline/Get Players.yml (64%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Pull Pipelines}/Pull Players Pipeline/Update Player Items.yml (81%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Pull Pipelines}/Pull Playlists Pipeline.yml (76%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Pull Pipelines}/Pull Playlists Pipeline/Get Playlists.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Pull Pipelines}/Pull Playlists Pipeline/Update Playlist Items.yml (85%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Pull Pipelines}/Pull Videos Pipeline.yml (76%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Pull Pipelines}/Pull Videos Pipeline/Get Videos.yml (85%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Pull Pipelines}/Pull Videos Pipeline/Update Video Items.yml (84%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Push Pipelines.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Push Pipelines/Push Folders Pipeline.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Push Pipelines/Push Folders Pipeline/Read Folder Items.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Push Pipelines/Push Folders Pipeline/Update Folder Models.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Push Pipelines/Push Labels Pipeline.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Push Pipelines/Push Labels Pipeline/Read Label Items.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Push Pipelines/Push Labels Pipeline/Update Label Models.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Push Pipelines}/Push Players Pipeline.yml (80%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Push Pipelines}/Push Players Pipeline/Read Player Items.yml (86%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Push Pipelines}/Push Players Pipeline/Update Player Models.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Push Pipelines}/Push Playlists Pipeline.yml (76%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Push Pipelines}/Push Playlists Pipeline/Read Playlist Items.yml (88%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Push Pipelines}/Push Playlists Pipeline/Update Playlist Models.yml (85%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Push Pipelines}/Push Videos Pipeline.yml (76%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Push Pipelines}/Push Videos Pipeline/Read Video Items.yml (89%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/{ => Push Pipelines}/Push Videos Pipeline/Update Video Models.yml (86%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Item Pipelines.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Item Pipelines}/Update Experience Items Pipeli.yml (76%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Item Pipelines}/Update Experience Items Pipeli/Resolve Experience Item.yml (89%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Item Pipelines}/Update Experience Items Pipeli/Update Experience Item.yml (85%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Item Pipelines/Update Folder Items Pipeline.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Item Pipelines/Update Folder Items Pipeline/Resolve Folder Item.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Item Pipelines/Update Folder Items Pipeline/Update Folder Item.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Item Pipelines/Update Label Items Pipeline.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Item Pipelines/Update Label Items Pipeline/Resolve Label Item.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Item Pipelines/Update Label Items Pipeline/Update Label Item.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Item Pipelines}/Update Player Items Pipeline.yml (77%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Item Pipelines}/Update Player Items Pipeline/Resolve Player Item.yml (89%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Item Pipelines}/Update Player Items Pipeline/Update Player Item.yml (86%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Item Pipelines}/Update Playlist Items Pipeline.yml (72%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Item Pipelines}/Update Playlist Items Pipeline/Resolve Playlist Item.yml (90%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Item Pipelines}/Update Playlist Items Pipeline/Update Playlist Item.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Item Pipelines}/Update Video Items Pipeline.yml (78%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Item Pipelines}/Update Video Items Pipeline/Resolve Video Item.yml (91%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Item Pipelines}/Update Video Items Pipeline/Update Video Item.yml (91%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Model Pipelines.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Model Pipelines/Update Folder Models Pipeline.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Model Pipelines/Update Folder Models Pipeline/Resolve Folder Model.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Model Pipelines/Update Folder Models Pipeline/Update Folder Model.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Model Pipelines/Update Label Models Pipeline.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Model Pipelines/Update Label Models Pipeline/Resolve Label Model.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/Update Model Pipelines/Update Label Models Pipeline/Update Label Model.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Model Pipelines}/Update Player Models Pipeline.yml (77%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Model Pipelines}/Update Player Models Pipeline/Resolve Player Model.yml (56%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Model Pipelines}/Update Player Models Pipeline/Update Player Model.yml (65%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Model Pipelines}/Update Playlist Models Pipelin.yml (72%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Model Pipelines}/Update Playlist Models Pipelin/Resolve Playlist Model.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Model Pipelines}/Update Playlist Models Pipelin/Update Playlist Model.yml (81%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Model Pipelines}/Update Video Models Pipeline.yml (78%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Model Pipelines}/Update Video Models Pipeline/Resolve Video Model.yml (81%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Pipelines/Subpipelines/{ => Update Model Pipelines}/Update Video Models Pipeline/Update Video Model.yml (88%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Item Source Mapping Sets.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Asset Item Source Mapping Set.yml (73%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Asset Item Source Mapping Set/Name Field Mapping.yml (86%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Asset Item Source Mapping Set/Reference Id Field Mapping.yml (85%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Experience Item Source Mapping.yml (78%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Item Source Mapping Sets/Folder Item Source Mapping set.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Item Source Mapping Sets/Folder Item Source Mapping set/ID Field Mapping.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Item Source Mapping Sets/Folder Item Source Mapping set/Name Field Mapping.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Item Source Mapping Sets/Label Item Source Mapping Set.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Item Source Mapping Sets/Label Item Source Mapping Set/Label Field Mapping.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Item Source Mapping Sets/Label Item Source Mapping Set/New Label Field Mapping.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Player Item Source Mapping Set.yml (79%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Playlist Item Source Mapping S.yml (72%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Playlist Item Source Mapping S/Filter Tags Field Mapping.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Playlist Item Source Mapping S/Video Ids Field Mapping.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Video Item Source Mapping Set.yml (73%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Video Item Source Mapping Set/Economics Field Mapping.yml (86%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Item Source Mapping Sets/Video Item Source Mapping Set/Labels Field Mapping.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Video Item Source Mapping Set/Tags Field Mapping.yml (85%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Video Variant Item Source Mapp.yml (72%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Video Variant Item Source Mapp/Description Field Mapping.yml (82%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Video Variant Item Source Mapp/Language Field Mapping.yml (82%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Item Source Mapping Sets}/Video Variant Item Source Mapp/Name Field Mapping.yml (83%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Model Source Mapping Sets.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Model Source Mapping Sets}/Asset Model Source Mapping Set.yml (72%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Model Source Mapping Sets}/Asset Model Source Mapping Set/Id Property Mapping.yml (85%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Model Source Mapping Sets}/Asset Model Source Mapping Set/Name Property Mapping.yml (85%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Model Source Mapping Sets}/Experience Model Source Mappin.yml (78%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Model Source Mapping Sets}/Experience Model Source Mappin/Url Proprety Mapping.yml (84%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Model Source Mapping Sets/Folder Model Source Mapping Se.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Model Source Mapping Sets/Folder Model Source Mapping Se/Id Property Mapping.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Model Source Mapping Sets/Folder Model Source Mapping Se/Name Property Mapping.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Model Source Mapping Sets/Label Model Source Mapping Set.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Model Source Mapping Sets/Label Model Source Mapping Set/LastSyncTime Property.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Model Source Mapping Sets/Label Model Source Mapping Set/Path Property Mapping.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Model Source Mapping Sets}/Player Model Source Mapping Se.yml (78%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Model Source Mapping Sets}/Playlist Model Source Mapping_.yml (72%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Model Source Mapping Sets}/Video Model Source Mapping Set.yml (72%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Model Source Mapping Sets/Video Model Source Mapping Set/Folder Property Mapping.yml create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/Model Source Mapping Sets/Video Model Source Mapping Set/Labels Property Mapping.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Model Source Mapping Sets}/Video Model Source Mapping Set/Tags Property Mapping.yml (86%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Model Source Mapping Sets}/Video Variant Model Source Map.yml (71%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/Brightcove Tenant/_name/Value Mapping Sets/{ => Model Source Mapping Sets}/Video Variant Model Source Map/Name Property Mapping.yml (82%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/a1def34e-43bc-4ef0-9547-4ead309e28a3/Apply Label Item Source Mappin.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Playlist Model Source Mapping_ => b515fa0d-a5b2-4792-85f7-b415b091356d}/CreationDate Proprety Mapping.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Playlist Model Source Mapping_ => b515fa0d-a5b2-4792-85f7-b415b091356d}/Favorite Property Mapping.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Playlist Model Source Mapping_ => b515fa0d-a5b2-4792-85f7-b415b091356d}/LastModifiedDate Property Mapp.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Playlist Model Source Mapping_ => b515fa0d-a5b2-4792-85f7-b415b091356d}/PlayListSearch_FilterTags.yml (85%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Playlist Model Source Mapping_ => b515fa0d-a5b2-4792-85f7-b415b091356d}/PlayListSearch_TagInclusion.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Playlist Model Source Mapping_ => b515fa0d-a5b2-4792-85f7-b415b091356d}/PlaylistType Property Mapping.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Playlist Model Source Mapping_ => b515fa0d-a5b2-4792-85f7-b415b091356d}/VideoIds Property Mapping.yml (84%) create mode 100644 Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/bcd318ab-a0b9-47e5-b4ae-ade05ed9504e/Apply Label Model Source Mappi.yml rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Variant Model Source Map => da22cf7e-39a6-465f-9d7a-59ab5778915a}/CustomFields Property Mapping.yml (82%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Variant Model Source Map => da22cf7e-39a6-465f-9d7a-59ab5778915a}/Description Property Mapping.yml (82%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Variant Model Source Map => da22cf7e-39a6-465f-9d7a-59ab5778915a}/Language Property Mapping.yml (82%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Variant Model Source Map => da22cf7e-39a6-465f-9d7a-59ab5778915a}/LongDescription Property Mappi.yml (81%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/CreationDate Property Mapping.yml (85%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/CustomFields Property Mapping.yml (85%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/Duration Property Mapping.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/Economics Property Mapping.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/Images_Poster_Src Property Map.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/LastModifiedDate Property Mapp.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/Link_Text Property Mapping.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/Link_URL Property Mapping.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/LongDescription Property Mappi.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/PublishedDate Property Mapping.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/Sharing_ByExternalAcct Propert.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/Sharing_ById Property Mapping.yml (84%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/Sharing_ByReference Property M.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/Sharing_SourceId Property Mapp.yml (83%) rename Serialization/Brightcove.Template.Branches.DataExchangeFramework.Framework.Branches/{Brightcove Tenant/_name/Value Mapping Sets/Video Model Source Mapping Set => ef1e96bf-0500-4da4-a1ba-9ce1a318eda6}/Sharing_ToExternalAcct Propert.yml (83%) create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Data Access/Value Accessors/Folder Property Value Accessor.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Data Access/Value Accessors/Folder Property Value Accessor/Property.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Data Access/Value Accessors/Folder Property Value Accessor/Property/PropertyName.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Data Access/Value Accessors/Folder Property Value Accessor/__Standard Values.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Data Access/Value Accessors/Labels Property Value Accessor.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Data Access/Value Accessors/Labels Property Value Accessor/Property.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Data Access/Value Accessors/Labels Property Value Accessor/Property/PropertyName.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Data Access/Value Accessors/Labels Property Value Accessor/__Standard Values.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Get Labels Pipeline Step.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Get Labels Pipeline Step/Settings.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Get Labels Pipeline Step/Settings/EndpointFrom.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Get Labels Pipeline Step/__Standard Values.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Resolve Folder Model Pipeline_.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Resolve Folder Model Pipeline_/Settings.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Resolve Folder Model Pipeline_/Settings/AssetItemLocation.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Resolve Folder Model Pipeline_/Settings/AssetModelLocation.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Resolve Folder Model Pipeline_/Settings/EndpointFrom.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Resolve Folder Model Pipeline_/__Standard Values.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Resolve Label Model Pipeline S.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Resolve Label Model Pipeline S/Settings.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Resolve Label Model Pipeline S/Settings/AssetItemLocation.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Resolve Label Model Pipeline S/Settings/AssetModelLocation.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Resolve Label Model Pipeline S/Settings/EndpointFrom.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Resolve Label Model Pipeline S/__Standard Values.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Update Folder Model Pipeline S.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Update Folder Model Pipeline S/Settings.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Update Folder Model Pipeline S/Settings/AssetItemLocation.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Update Folder Model Pipeline S/Settings/AssetModelLocation.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Update Folder Model Pipeline S/Settings/EndpointFrom.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Update Folder Model Pipeline S/__Standard Values.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Update Label Model Pipeline St.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Update Label Model Pipeline St/Settings.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Update Label Model Pipeline St/Settings/AssetItemLocation.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Update Label Model Pipeline St/Settings/AssetModelLocation.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Update Label Model Pipeline St/Settings/EndpointFrom.yml create mode 100644 Serialization/Brightcove.Template.DataExchangeFramework/Brightcove/Pipeline Steps/Update Label Model Pipeline St/__Standard Values.yml create mode 100644 Serialization/Brightcove.Template/Brightcove/Brightcove Folder.yml create mode 100644 Serialization/Brightcove.Template/Brightcove/Brightcove Folder/Metadata.yml create mode 100644 Serialization/Brightcove.Template/Brightcove/Brightcove Folder/Metadata/ID.yml create mode 100644 Serialization/Brightcove.Template/Brightcove/Brightcove Folder/Metadata/Name.yml create mode 100644 Serialization/Brightcove.Template/Brightcove/Brightcove Folder/__Standard Values.yml create mode 100644 Serialization/Brightcove.Template/Brightcove/Brightcove Video Label.yml create mode 100644 Serialization/Brightcove.Template/Brightcove/Brightcove Video Label/Metadata.yml create mode 100644 Serialization/Brightcove.Template/Brightcove/Brightcove Video Label/Metadata/Label.yml create mode 100644 Serialization/Brightcove.Template/Brightcove/Brightcove Video Label/Metadata/NewLabel.yml create mode 100644 Serialization/Brightcove.Template/Brightcove/Brightcove Video Label/Metadata/NewPath.yml create mode 100644 Serialization/Brightcove.Template/Brightcove/Brightcove Video Label/__Standard Values.yml create mode 100644 Serialization/Brightcove.Template/Brightcove/BrightcoveVideo/Brightcove Video Data/BrightcoveFolder.yml create mode 100644 Serialization/Brightcove.Template/Brightcove/BrightcoveVideo/Brightcove Video Data/Labels.yml diff --git a/Brightcove.Core/Brightcove.Core.csproj b/Brightcove.Core/Brightcove.Core.csproj index 508c665f..313b893d 100644 --- a/Brightcove.Core/Brightcove.Core.csproj +++ b/Brightcove.Core/Brightcove.Core.csproj @@ -55,6 +55,7 @@ + @@ -67,6 +68,8 @@ + + diff --git a/Brightcove.Core/Models/Folder.cs b/Brightcove.Core/Models/Folder.cs new file mode 100644 index 00000000..a5930093 --- /dev/null +++ b/Brightcove.Core/Models/Folder.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; + +namespace Brightcove.Core.Models +{ + public class Folder + { + [JsonProperty("account_id", NullValueHandling = NullValueHandling.Ignore)] + public string AccountId { get; set; } + + [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] + public string Id { get; set; } + + [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] + public string Name { get; set; } + + [JsonProperty("video_count", NullValueHandling = NullValueHandling.Ignore)] + public int? VideoCount { get; set; } + + [JsonProperty("created_at", NullValueHandling = NullValueHandling.Ignore)] + public DateTime? CreationDate { get; set; } + + [JsonProperty("updated_at", NullValueHandling = NullValueHandling.Ignore)] + public DateTime? UpdatedDate { get; set; } + + [JsonIgnore()] + public DateTime LastSyncTime { get; set; } + + public Folder ShallowCopy() + { + return (Folder)this.MemberwiseClone(); + } + } +} diff --git a/Brightcove.Core/Models/Label.cs b/Brightcove.Core/Models/Label.cs new file mode 100644 index 00000000..83c2cd2b --- /dev/null +++ b/Brightcove.Core/Models/Label.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.Linq; + +namespace Brightcove.Core.Models +{ + public class Label + { + [JsonProperty("path", NullValueHandling = NullValueHandling.Ignore)] + public string Path { get; set; } + + [JsonProperty("new_label", NullValueHandling = NullValueHandling.Ignore)] + public string NewLabel { get; set; } + + [JsonIgnore()] + public string SitecoreName { get; set; } + + [JsonIgnore()] + public DateTime LastSyncTime { get; set; } + + public Label() + { + + } + + public Label(string path) + { + Path = AddTrailingSlash(path); + SitecoreName = Path.Replace("/", "_"); + } + + public Label ShallowCopy() + { + return (Label)this.MemberwiseClone(); + } + + public static bool TryParse(string path, out Label label) + { + if(path.Length <= 1) + { + label = null; + return false; + } + + if (path[0] != '/') + { + label = null; + return false; + } + + label = new Label(path); + return true; + } + + public string GetLeafLabel() + { + return Path.Split('/').Last(); + } + + private string AddTrailingSlash(string path) + { + if (path[path.Length - 1] != '/') + { + return path + '/'; + } + + return path; + } + } +} \ No newline at end of file diff --git a/Brightcove.Core/Models/Labels.cs b/Brightcove.Core/Models/Labels.cs new file mode 100644 index 00000000..7d11c8b2 --- /dev/null +++ b/Brightcove.Core/Models/Labels.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; + +namespace Brightcove.Core.Models +{ + public class Labels + { + [JsonProperty("account_id", NullValueHandling = NullValueHandling.Ignore)] + public string AccountId { get; set; } + + [JsonProperty("labels", NullValueHandling = NullValueHandling.Ignore)] + public List Paths { get; set; } + + [JsonProperty("version", NullValueHandling = NullValueHandling.Ignore)] + public int Version { get; set; } + + public Labels ShallowCopy() + { + return (Labels)this.MemberwiseClone(); + } + } +} diff --git a/Brightcove.Core/Models/Video.cs b/Brightcove.Core/Models/Video.cs index 78afafb4..48c2450b 100644 --- a/Brightcove.Core/Models/Video.cs +++ b/Brightcove.Core/Models/Video.cs @@ -47,6 +47,12 @@ public class Video : Asset [JsonProperty("sharing", NullValueHandling = NullValueHandling.Ignore)] public VideoSharing Sharing { get; set; } + [JsonProperty("labels", NullValueHandling = NullValueHandling.Ignore)] + public List Labels { get; set; } + + [JsonProperty("folder_id", NullValueHandling = NullValueHandling.Ignore)] + public string Folder { get; set; } + [JsonIgnore] public string IngestJobId { get; set; } diff --git a/Brightcove.Core/Services/BrightcoveService.cs b/Brightcove.Core/Services/BrightcoveService.cs index ea180e91..0e6c008e 100644 --- a/Brightcove.Core/Services/BrightcoveService.cs +++ b/Brightcove.Core/Services/BrightcoveService.cs @@ -1,16 +1,14 @@ -using Brightcove.Core.Models; +using Brightcove.Core.Exceptions; +using Brightcove.Core.Extensions; +using Brightcove.Core.Models; +using Brightcove.MediaFramework.Brightcove.Entities; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; +using System.Net; using System.Net.Http; using System.Text; -using System.Threading.Tasks; -using Brightcove.Core.Extensions; -using System.Net.Http.Headers; -using Brightcove.Core.Exceptions; -using System.Net; -using Brightcove.MediaFramework.Brightcove.Entities; namespace Brightcove.Core.Services { @@ -82,6 +80,22 @@ public Video CreateVideo(string name) return video; } + public Folder CreateFolder(string name) + { + Folder folder = new Folder(); + folder.Name = name; + + HttpRequestMessage request = new HttpRequestMessage(); + request.Content = new StringContent(JsonConvert.SerializeObject(folder), Encoding.UTF8, "application/json"); + request.Method = HttpMethod.Post; + request.RequestUri = new Uri($"{cmsBaseUrl}/{accountId}/folders"); + + HttpResponseMessage response = SendRequest(request); + folder = JsonConvert.DeserializeObject(response.Content.ReadAsString()); + + return folder; + } + public PlayList CreatePlaylist(string name) { PlayList playlist = new PlayList(); @@ -99,6 +113,75 @@ public PlayList CreatePlaylist(string name) return playlist; } + public Label CreateLabel(string path) + { + Label label = new Label(); + label.Path = path; + + HttpRequestMessage request = new HttpRequestMessage(); + request.Content = new StringContent(JsonConvert.SerializeObject(label), Encoding.UTF8, "application/json"); + request.Method = HttpMethod.Post; + request.RequestUri = new Uri($"{cmsBaseUrl}/{accountId}/labels"); + + HttpResponseMessage response = SendRequest(request); + label = new Label(JsonConvert.DeserializeObject