/// <summary>
 /// Returns the hashcode of this Object
 /// </summary>
 /// <returns>Hash code (int)</returns>
 public override int GetHashCode()
 {
     // Credit: http://stackoverflow.com/a/263416/677735
     unchecked             // Overflow is fine, just wrap
     {
         int hash = 41;
         // Suitable nullity checks etc, of course :)
         if (Id != null)
         {
             hash = hash * 59 + Id.GetHashCode();
         }
         if (Name != null)
         {
             hash = hash * 59 + Name.GetHashCode();
         }
         if (Description != null)
         {
             hash = hash * 59 + Description.GetHashCode();
         }
         if (RetentionDays != null)
         {
             hash = hash * 59 + RetentionDays.GetHashCode();
         }
         return(hash);
     }
 }
 public ILogGroup CreateLogGroup(string id, string lambdaName, RetentionDays retentionTime)
 {
     return(new LogGroup(Scope, id, new LogGroupProps
     {
         LogGroupName = $"/aws/lambda/{lambdaName}",
         RemovalPolicy = RemovalPolicy.DESTROY,
         Retention = retentionTime
     }));
 }
        // Module defining this command


        // Optional custom code for this activity


        /// <summary>
        /// Returns a configured instance of System.Management.Automation.PowerShell, pre-populated with the command to run.
        /// </summary>
        /// <param name="context">The NativeActivityContext for the currently running activity.</param>
        /// <returns>A populated instance of System.Management.Automation.PowerShell</returns>
        /// <remarks>The infrastructure takes responsibility for closing and disposing the PowerShell instance returned.</remarks>
        protected override ActivityImplementationContext GetPowerShell(NativeActivityContext context)
        {
            System.Management.Automation.PowerShell invoker       = global::System.Management.Automation.PowerShell.Create();
            System.Management.Automation.PowerShell targetCommand = invoker.AddCommand(PSCommandName);

            // Initialize the arguments

            if (LogName.Expression != null)
            {
                targetCommand.AddParameter("LogName", LogName.Get(context));
            }

            if (RetentionDays.Expression != null)
            {
                targetCommand.AddParameter("RetentionDays", RetentionDays.Get(context));
            }

            if (OverflowAction.Expression != null)
            {
                targetCommand.AddParameter("OverflowAction", OverflowAction.Get(context));
            }

            if (MaximumSize.Expression != null)
            {
                targetCommand.AddParameter("MaximumSize", MaximumSize.Get(context));
            }

            if (GetIsComputerNameSpecified(context) && (PSRemotingBehavior.Get(context) == RemotingBehavior.Custom))
            {
                targetCommand.AddParameter("ComputerName", PSComputerName.Get(context));
            }


            return(new ActivityImplementationContext()
            {
                PowerShellInstance = invoker
            });
        }
Beispiel #4
0
 public void Save()
 {
     SaveKeyValuePair("AutoUpdateMinutes", AutoUpdateMinutes.ToString());
     SaveKeyValuePair("RetentionDays", RetentionDays.ToString());
 }
        private void GetLogGroupResouces(LogGroupOptions logGroup, out string lambdaFunctionName, out RetentionDays retentionTime)
        {
            // Find lambda name associated with this log group
            lambdaFunctionName = CdkOptions?.Lambdas?.FirstOrDefault(x => x.Id == logGroup.FunctionId)?.FunctionName;
            if (string.IsNullOrWhiteSpace(lambdaFunctionName))
            {
                throw new ArgumentException($"The lambda function id {logGroup.FunctionId} in the log group {logGroup.Id} was not found");
            }

            // Parse log retention time
            if (string.IsNullOrWhiteSpace(logGroup.LogRetentionTime))
            {
                retentionTime = RetentionDays.INFINITE;
            }
            else
            {
                if (!Enum.TryParse(logGroup.LogRetentionTime, out retentionTime))
                {
                    throw new ArgumentException($"The log retention time {logGroup.LogRetentionTime} of the log group {logGroup.Id} does not have a valid value");
                }
            }
        }
 public IFunctionBuilder SetLogRetentionDays(RetentionDays retentionDays)
 {
     _props.LogRetention = retentionDays;
     return(this);
 }
Beispiel #7
0
 public ILogGroup CreateLogGroup(string id, string lambdaName, RetentionDays retentionTime)
 {
     return(HandlerResources.AwsCdkLambdaHandler.CreateLogGroup(id, lambdaName, retentionTime));
 }