public override Stream Serialize()

in sdk/Transform/SetBucketInventoryConfigurationRequestSerializer.cs [18:86]


        public override Stream Serialize(SetBucketInventoryConfigurationRequest request)
        {
            var config = request.Configuration;
            var model = new InventoryConfigurationModel
            {
                Id = config.Id,
                IsEnabled = config.IsEnabled,
                IncludedObjectVersions = config.IncludedObjectVersions,
            };

            if (config.Schedule != null)
            {
                model.Schedule = new InventoryConfigurationModel.ScheduleModel
                {
                    Frequency = config.Schedule.Frequency
                };
            }

            if (config.Filter != null)
            {
                model.Filter = new InventoryConfigurationModel.FilterModel { Prefix = config.Filter.Prefix };
            }

            //Destination
            var ossDest = new InventoryConfigurationModel.OSSBucketDestinationModel
            {
                Format = config.Destination.OSSBucketDestination.Format,
                AccountId = config.Destination.OSSBucketDestination.AccountId,
                RoleArn = config.Destination.OSSBucketDestination.RoleArn,
                Bucket = "acs:oss:::" + config.Destination.OSSBucketDestination.Bucket,
                Prefix = config.Destination.OSSBucketDestination.Prefix,
            };

            if (config.Destination.OSSBucketDestination.Encryption != null)
            {
                ossDest.Encryption = new InventoryConfigurationModel.EncryptionModel();

                if (config.Destination.OSSBucketDestination.Encryption.SSEKMS != null)
                {
                    ossDest.Encryption.SSEKMS = new InventoryConfigurationModel.SSEKMSModel()
                    {
                        KeyId = config.Destination.OSSBucketDestination.Encryption.SSEKMS.KeyId
                    };
                }

                if (config.Destination.OSSBucketDestination.Encryption.SSEOSS != null)
                {
                    ossDest.Encryption.SSEOSS = new InventoryConfigurationModel.SSEOSSModel();
                }
            }

            model.Destination = new InventoryConfigurationModel.DestinationModel
            {
                OSSBucketDestination = ossDest
            };

            //Fields
            if (config.OptionalFields.Count > 0)
            {
                model.OptionalFields = new InventoryConfigurationModel.OptionalFieldsModel();
                model.OptionalFields.Fields = new InventoryOptionalField[config.OptionalFields.Count];
                for (var i = 0; i < config.OptionalFields.Count; i++)
                {
                    model.OptionalFields.Fields[i] = config.OptionalFields[i];
                }
            }

            return ContentSerializer.Serialize(model);
        }