public IReadOnlyList <Microsoft.Azure.Management.Storage.Fluent.IPolicyRule> Rules() { List <ManagementPolicyRule> originalRules = this.Inner.Policy.Rules as List <ManagementPolicyRule>; List <IPolicyRule> returnRules = new List <IPolicyRule>(); foreach (ManagementPolicyRule originalRule in originalRules) { List <String> originalBlobTypes = originalRule.Definition.Filters.BlobTypes as List <String>; List <BlobTypes> returnBlobTypes = new List <BlobTypes>(); foreach (String originalBlobType in originalBlobTypes) { returnBlobTypes.Add(BlobTypes.Parse(originalBlobType)); } IPolicyRule returnRule = new PolicyRuleImpl(originalRule.Name) .WithLifecycleRuleType() .WithBlobTypesToFilterFor(returnBlobTypes); // building up prefixes to filter on if (originalRule.Definition.Filters.PrefixMatch != null) { ((PolicyRuleImpl)returnRule).WithPrefixesToFilterFor(originalRule.Definition.Filters.PrefixMatch); } // building up actions on base blob ManagementPolicyBaseBlob originalBaseBlobActions = originalRule.Definition.Actions.BaseBlob; if (originalBaseBlobActions != null) { if (originalBaseBlobActions.TierToCool != null) { ((PolicyRuleImpl)returnRule).WithTierToCoolActionOnBaseBlob(originalBaseBlobActions.TierToCool.DaysAfterModificationGreaterThan); } if (originalBaseBlobActions.TierToArchive != null) { ((PolicyRuleImpl)returnRule).WithTierToArchiveActionOnBaseBlob(originalBaseBlobActions.TierToArchive.DaysAfterModificationGreaterThan); } if (originalBaseBlobActions.Delete != null) { ((PolicyRuleImpl)returnRule).WithDeleteActionOnBaseBlob(originalBaseBlobActions.Delete.DaysAfterModificationGreaterThan); } } // build up actions on snapshot ManagementPolicySnapShot originalSnapshotActions = originalRule.Definition.Actions.Snapshot; if (originalSnapshotActions != null) { if (originalSnapshotActions.Delete != null) { ((PolicyRuleImpl)returnRule).WithDeleteActionOnSnapShot(originalSnapshotActions.Delete.DaysAfterCreationGreaterThan); } } returnRules.Add(returnRule); } return(returnRules.AsReadOnly()); }
internal void DefineRule(PolicyRuleImpl policyRuleImpl) { if (IsInCreateMode()) { if (this.cpolicy.Rules == null) { this.cpolicy.Rules = new List <ManagementPolicyRule>(); } List <ManagementPolicyRule> rules = this.cpolicy.Rules as List <ManagementPolicyRule>; rules.Add(policyRuleImpl.Inner()); this.cpolicy.Rules = rules; } else { if (this.upolicy.Rules == null) { this.upolicy.Rules = new List <ManagementPolicyRule>(); } List <ManagementPolicyRule> rules = this.upolicy.Rules as List <ManagementPolicyRule>; rules.Add(policyRuleImpl.Inner()); this.upolicy.Rules = rules; } }