text:
var util = require("util");
var choreography = require("temboo/core/choreography");

/*
    AddPermission
    Creates a statement for a topic's access control policy which allows an AWS account to have access to the specified Amazon SNS actions.
*/

var AddPermission = function(session) {
    /*
        Create a new instance of the AddPermission Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Amazon/SNS/AddPermission"
    AddPermission.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new AddPermissionResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new AddPermissionInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the AddPermission
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var AddPermissionInputSet = function() {
    AddPermissionInputSet.super_.call(this);
        /*
        Set the value of the AWSAccessKeyId input for this Choreo. ((required, string) The Access Key ID provided by Amazon Web Services.)
        */
        this.set_AWSAccessKeyId = function(value) {
            this.setInput("AWSAccessKeyId", value);
        }

        /*
        Set the value of the AWSAccountId input for this Choreo. ((required, integer) The AWS account number of the user that will be granted access to a specified action. Enter account number omitting any dashes.)
        */
        this.set_AWSAccountId = function(value) {
            this.setInput("AWSAccountId", value);
        }

        /*
        Set the value of the AWSSecretKeyId input for this Choreo. ((required, string) The Secret Key ID provided by Amazon Web Services.)
        */
        this.set_AWSSecretKeyId = function(value) {
            this.setInput("AWSSecretKeyId", value);
        }

        /*
        Set the value of the ActionName input for this Choreo. ((required, string) The action you want to allow for a specified user (i.e. DeleteTopic, Publish, GetTopicAttributes, etc).)
        */
        this.set_ActionName = function(value) {
            this.setInput("ActionName", value);
        }

        /*
        Set the value of the Label input for this Choreo. ((required, string) The unique identifier for the new policy statement.)
        */
        this.set_Label = function(value) {
            this.setInput("Label", value);
        }

        /*
        Set the value of the TopicArn input for this Choreo. ((required, string) The ARN of the topic whos access control policy you want to adjust.)
        */
        this.set_TopicArn = function(value) {
            this.setInput("TopicArn", value);
        }

        /*
        Set the value of the UserRegion input for this Choreo. ((optional, string) The AWS region that corresponds to the SNS endpoint you wish to access. The default region is "us-east-1". See description below for valid values.)
        */
        this.set_UserRegion = function(value) {
            this.setInput("UserRegion", value);
        }

}

/*
A ResultSet with methods tailored to the values returned by the AddPermission Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var AddPermissionResultSet = function(resultStream) {
    AddPermissionResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((xml) The response from Amazon.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
}

util.inherits(AddPermission, choreography.Choreography);
util.inherits(AddPermissionInputSet, choreography.InputSet);
util.inherits(AddPermissionResultSet, choreography.ResultSet);
exports.AddPermission = AddPermission;

/*
    ConfirmSubscription
    Verifies that the endpoint owner wishes to receive messages by verifying the token sent during the Subscribe action.
*/

var ConfirmSubscription = function(session) {
    /*
        Create a new instance of the ConfirmSubscription Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Amazon/SNS/ConfirmSubscription"
    ConfirmSubscription.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new ConfirmSubscriptionResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new ConfirmSubscriptionInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the ConfirmSubscription
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var ConfirmSubscriptionInputSet = function() {
    ConfirmSubscriptionInputSet.super_.call(this);
        /*
        Set the value of the AWSAccessKeyId input for this Choreo. ((required, string) The Access Key ID provided by Amazon Web Services.)
        */
        this.set_AWSAccessKeyId = function(value) {
            this.setInput("AWSAccessKeyId", value);
        }

        /*
        Set the value of the AWSSecretKeyId input for this Choreo. ((required, string) The Secret Key ID provided by Amazon Web Services.)
        */
        this.set_AWSSecretKeyId = function(value) {
            this.setInput("AWSSecretKeyId", value);
        }

        /*
        Set the value of the AuthenticateOnUnsubscribed input for this Choreo. ((optional, boolean) Indicates that you want to disable the ability to unsubscribe from the subscription without authenticating. Specify 1 to enable this flag.)
        */
        this.set_AuthenticateOnUnsubscribed = function(value) {
            this.setInput("AuthenticateOnUnsubscribed", value);
        }

        /*
        Set the value of the Token input for this Choreo. ((required, string) The short-lived token sent to an endpoint during the Subscribe action.)
        */
        this.set_Token = function(value) {
            this.setInput("Token", value);
        }

        /*
        Set the value of the TopicArn input for this Choreo. ((required, string) The ARN of the topic you want to confirm a subscription for.)
        */
        this.set_TopicArn = function(value) {
            this.setInput("TopicArn", value);
        }

        /*
        Set the value of the UserRegion input for this Choreo. ((optional, string) The AWS region that corresponds to the SNS endpoint you wish to access. The default region is "us-east-1". See description below for valid values.)
        */
        this.set_UserRegion = function(value) {
            this.setInput("UserRegion", value);
        }

}

/*
A ResultSet with methods tailored to the values returned by the ConfirmSubscription Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var ConfirmSubscriptionResultSet = function(resultStream) {
    ConfirmSubscriptionResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((xml) The response from Amazon.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
}

util.inherits(ConfirmSubscription, choreography.Choreography);
util.inherits(ConfirmSubscriptionInputSet, choreography.InputSet);
util.inherits(ConfirmSubscriptionResultSet, choreography.ResultSet);
exports.ConfirmSubscription = ConfirmSubscription;

/*
    CreateTopic
    Creates a new topic that notifications can be published to.
*/

var CreateTopic = function(session) {
    /*
        Create a new instance of the CreateTopic Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Amazon/SNS/CreateTopic"
    CreateTopic.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new CreateTopicResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new CreateTopicInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the CreateTopic
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var CreateTopicInputSet = function() {
    CreateTopicInputSet.super_.call(this);
        /*
        Set the value of the AWSAccessKeyId input for this Choreo. ((required, string) The Access Key ID provided by Amazon Web Services.)
        */
        this.set_AWSAccessKeyId = function(value) {
            this.setInput("AWSAccessKeyId", value);
        }

        /*
        Set the value of the AWSSecretKeyId input for this Choreo. ((required, string) The Secret Key ID provided by Amazon Web Services.)
        */
        this.set_AWSSecretKeyId = function(value) {
            this.setInput("AWSSecretKeyId", value);
        }

        /*
        Set the value of the Name input for this Choreo. ((required, string) The name of the topic you want to create.)
        */
        this.set_Name = function(value) {
            this.setInput("Name", value);
        }

        /*
        Set the value of the UserRegion input for this Choreo. ((optional, string) The AWS region that corresponds to the SNS endpoint you wish to access. The default region is "us-east-1". See description below for valid values.)
        */
        this.set_UserRegion = function(value) {
            this.setInput("UserRegion", value);
        }

}

/*
A ResultSet with methods tailored to the values returned by the CreateTopic Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var CreateTopicResultSet = function(resultStream) {
    CreateTopicResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((xml) The response from Amazon.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
}

util.inherits(CreateTopic, choreography.Choreography);
util.inherits(CreateTopicInputSet, choreography.InputSet);
util.inherits(CreateTopicResultSet, choreography.ResultSet);
exports.CreateTopic = CreateTopic;

/*
    DeleteTopic
    Deletes a specified topic and all its subscriptions.
*/

var DeleteTopic = function(session) {
    /*
        Create a new instance of the DeleteTopic Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Amazon/SNS/DeleteTopic"
    DeleteTopic.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new DeleteTopicResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new DeleteTopicInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the DeleteTopic
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var DeleteTopicInputSet = function() {
    DeleteTopicInputSet.super_.call(this);
        /*
        Set the value of the AWSAccessKeyId input for this Choreo. ((required, string) The Access Key ID provided by Amazon Web Services.)
        */
        this.set_AWSAccessKeyId = function(value) {
            this.setInput("AWSAccessKeyId", value);
        }

        /*
        Set the value of the AWSSecretKeyId input for this Choreo. ((required, string) The Secret Key ID provided by Amazon Web Services.)
        */
        this.set_AWSSecretKeyId = function(value) {
            this.setInput("AWSSecretKeyId", value);
        }

        /*
        Set the value of the TopicArn input for this Choreo. ((required, string) The ARN of the topic you want to delete.)
        */
        this.set_TopicArn = function(value) {
            this.setInput("TopicArn", value);
        }

        /*
        Set the value of the UserRegion input for this Choreo. ((optional, string) The AWS region that corresponds to the SNS endpoint you wish to access. The default region is "us-east-1". See description below for valid values.)
        */
        this.set_UserRegion = function(value) {
            this.setInput("UserRegion", value);
        }

}

/*
A ResultSet with methods tailored to the values returned by the DeleteTopic Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var DeleteTopicResultSet = function(resultStream) {
    DeleteTopicResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((xml) The response from Amazon.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
}

util.inherits(DeleteTopic, choreography.Choreography);
util.inherits(DeleteTopicInputSet, choreography.InputSet);
util.inherits(DeleteTopicResultSet, choreography.ResultSet);
exports.DeleteTopic = DeleteTopic;

/*
    GetTopicAttributes
    Returns properties for a specified topic.
*/

var GetTopicAttributes = function(session) {
    /*
        Create a new instance of the GetTopicAttributes Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Amazon/SNS/GetTopicAttributes"
    GetTopicAttributes.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new GetTopicAttributesResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new GetTopicAttributesInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the GetTopicAttributes
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var GetTopicAttributesInputSet = function() {
    GetTopicAttributesInputSet.super_.call(this);
        /*
        Set the value of the AWSAccessKeyId input for this Choreo. ((required, string) The Access Key ID provided by Amazon Web Services.)
        */
        this.set_AWSAccessKeyId = function(value) {
            this.setInput("AWSAccessKeyId", value);
        }

        /*
        Set the value of the AWSSecretKeyId input for this Choreo. ((required, string) The Secret Key ID provided by Amazon Web Services.)
        */
        this.set_AWSSecretKeyId = function(value) {
            this.setInput("AWSSecretKeyId", value);
        }

        /*
        Set the value of the TopicArn input for this Choreo. ((required, string) The ARN of the topic you want to retrieve attributes for.)
        */
        this.set_TopicArn = function(value) {
            this.setInput("TopicArn", value);
        }

        /*
        Set the value of the UserRegion input for this Choreo. ((optional, string) The AWS region that corresponds to the SNS endpoint you wish to access. The default region is "us-east-1". See description below for valid values.)
        */
        this.set_UserRegion = function(value) {
            this.setInput("UserRegion", value);
        }

}

/*
A ResultSet with methods tailored to the values returned by the GetTopicAttributes Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var GetTopicAttributesResultSet = function(resultStream) {
    GetTopicAttributesResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((xml) The response from Amazon.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
}

util.inherits(GetTopicAttributes, choreography.Choreography);
util.inherits(GetTopicAttributesInputSet, choreography.InputSet);
util.inherits(GetTopicAttributesResultSet, choreography.ResultSet);
exports.GetTopicAttributes = GetTopicAttributes;

/*
    ListSubscriptions
    Returns a list of the user's subscriptions. Each call returns a limited list of subscriptions, up to 100.
*/

var ListSubscriptions = function(session) {
    /*
        Create a new instance of the ListSubscriptions Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Amazon/SNS/ListSubscriptions"
    ListSubscriptions.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new ListSubscriptionsResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new ListSubscriptionsInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the ListSubscriptions
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var ListSubscriptionsInputSet = function() {
    ListSubscriptionsInputSet.super_.call(this);
        /*
        Set the value of the AWSAccessKeyId input for this Choreo. ((required, string) The Access Key ID provided by Amazon Web Services.)
        */
        this.set_AWSAccessKeyId = function(value) {
            this.setInput("AWSAccessKeyId", value);
        }

        /*
        Set the value of the AWSSecretKeyId input for this Choreo. ((required, string) The Secret Key ID provided by Amazon Web Services.)
        */
        this.set_AWSSecretKeyId = function(value) {
            this.setInput("AWSSecretKeyId", value);
        }

        /*
        Set the value of the NextToken input for this Choreo. ((optional, string) The token returned from a previous LIstSubscriptions request.)
        */
        this.set_NextToken = function(value) {
            this.setInput("NextToken", value);
        }

        /*
        Set the value of the UserRegion input for this Choreo. ((optional, string) The AWS region that corresponds to the SNS endpoint you wish to access. The default region is "us-east-1". See description below for valid values.)
        */
        this.set_UserRegion = function(value) {
            this.setInput("UserRegion", value);
        }

}

/*
A ResultSet with methods tailored to the values returned by the ListSubscriptions Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var ListSubscriptionsResultSet = function(resultStream) {
    ListSubscriptionsResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((xml) The response from Amazon.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
}

util.inherits(ListSubscriptions, choreography.Choreography);
util.inherits(ListSubscriptionsInputSet, choreography.InputSet);
util.inherits(ListSubscriptionsResultSet, choreography.ResultSet);
exports.ListSubscriptions = ListSubscriptions;

/*
    ListSubscriptionsByTopic
    Returns a list of the subscriptions for a specified topic.
*/

var ListSubscriptionsByTopic = function(session) {
    /*
        Create a new instance of the ListSubscriptionsByTopic Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Amazon/SNS/ListSubscriptionsByTopic"
    ListSubscriptionsByTopic.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new ListSubscriptionsByTopicResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new ListSubscriptionsByTopicInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the ListSubscriptionsByTopic
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var ListSubscriptionsByTopicInputSet = function() {
    ListSubscriptionsByTopicInputSet.super_.call(this);
        /*
        Set the value of the AWSAccessKeyId input for this Choreo. ((required, string) The Access Key ID provided by Amazon Web Services.)
        */
        this.set_AWSAccessKeyId = function(value) {
            this.setInput("AWSAccessKeyId", value);
        }

        /*
        Set the value of the AWSSecretKeyId input for this Choreo. ((required, string) The Secret Key ID provided by Amazon Web Services.)
        */
        this.set_AWSSecretKeyId = function(value) {
            this.setInput("AWSSecretKeyId", value);
        }

        /*
        Set the value of the NextToken input for this Choreo. ((optional, string) The token returned from a previous LIstSubscriptionsByTopic request.)
        */
        this.set_NextToken = function(value) {
            this.setInput("NextToken", value);
        }

        /*
        Set the value of the TopicArn input for this Choreo. ((required, string) The ARN of the topic that you want to find subscriptions for.)
        */
        this.set_TopicArn = function(value) {
            this.setInput("TopicArn", value);
        }

        /*
        Set the value of the UserRegion input for this Choreo. ((optional, string) The AWS region that corresponds to the SNS endpoint you wish to access. The default region is "us-east-1". See description below for valid values.)
        */
        this.set_UserRegion = function(value) {
            this.setInput("UserRegion", value);
        }

}

/*
A ResultSet with methods tailored to the values returned by the ListSubscriptionsByTopic Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var ListSubscriptionsByTopicResultSet = function(resultStream) {
    ListSubscriptionsByTopicResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((xml) The response from Amazon.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
}

util.inherits(ListSubscriptionsByTopic, choreography.Choreography);
util.inherits(ListSubscriptionsByTopicInputSet, choreography.InputSet);
util.inherits(ListSubscriptionsByTopicResultSet, choreography.ResultSet);
exports.ListSubscriptionsByTopic = ListSubscriptionsByTopic;

/*
    ListTopics
    Returns a list of the user's topics.
*/

var ListTopics = function(session) {
    /*
        Create a new instance of the ListTopics Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Amazon/SNS/ListTopics"
    ListTopics.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new ListTopicsResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new ListTopicsInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the ListTopics
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var ListTopicsInputSet = function() {
    ListTopicsInputSet.super_.call(this);
        /*
        Set the value of the AWSAccessKeyId input for this Choreo. ((required, string) The Access Key ID provided by Amazon Web Services.)
        */
        this.set_AWSAccessKeyId = function(value) {
            this.setInput("AWSAccessKeyId", value);
        }

        /*
        Set the value of the AWSSecretKeyId input for this Choreo. ((required, string) The Secret Key ID provided by Amazon Web Services.)
        */
        this.set_AWSSecretKeyId = function(value) {
            this.setInput("AWSSecretKeyId", value);
        }

        /*
        Set the value of the NextToken input for this Choreo. ((optional, string) The token returned from a previous LIstTopics request.)
        */
        this.set_NextToken = function(value) {
            this.setInput("NextToken", value);
        }

        /*
        Set the value of the UserRegion input for this Choreo. ((optional, string) The AWS region that corresponds to the SNS endpoint you wish to access. The default region is "us-east-1". See description below for valid values.)
        */
        this.set_UserRegion = function(value) {
            this.setInput("UserRegion", value);
        }

}

/*
A ResultSet with methods tailored to the values returned by the ListTopics Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var ListTopicsResultSet = function(resultStream) {
    ListTopicsResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((xml) The response from Amazon.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
}

util.inherits(ListTopics, choreography.Choreography);
util.inherits(ListTopicsInputSet, choreography.InputSet);
util.inherits(ListTopicsResultSet, choreography.ResultSet);
exports.ListTopics = ListTopics;

/*
    Publish
    Sends a message to a topic's subscribed endpoints.
*/

var Publish = function(session) {
    /*
        Create a new instance of the Publish Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Amazon/SNS/Publish"
    Publish.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new PublishResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new PublishInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the Publish
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var PublishInputSet = function() {
    PublishInputSet.super_.call(this);
        /*
        Set the value of the AWSAccessKeyId input for this Choreo. ((required, string) The Access Key ID provided by Amazon Web Services.)
        */
        this.set_AWSAccessKeyId = function(value) {
            this.setInput("AWSAccessKeyId", value);
        }

        /*
        Set the value of the AWSSecretKeyId input for this Choreo. ((required, string) The Secret Key ID provided by Amazon Web Services.)
        */
        this.set_AWSSecretKeyId = function(value) {
            this.setInput("AWSSecretKeyId", value);
        }

        /*
        Set the value of the MessageStructure input for this Choreo. ((optional, string) Can be set to 'json' if you are providing a valid JSON object for the Message input variable.)
        */
        this.set_MessageStructure = function(value) {
            this.setInput("MessageStructure", value);
        }

        /*
        Set the value of the Message input for this Choreo. ((required, string) The text for the message you want to send to the topic.)
        */
        this.set_Message = function(value) {
            this.setInput("Message", value);
        }

        /*
        Set the value of the Subject input for this Choreo. ((optional, string) The "Subject" line of the message when the message is delivered to e-mail endpoints or as a JSON message.)
        */
        this.set_Subject = function(value) {
            this.setInput("Subject", value);
        }

        /*
        Set the value of the TopicArn input for this Choreo. ((required, string) The ARN of the topic you want to publish to.)
        */
        this.set_TopicArn = function(value) {
            this.setInput("TopicArn", value);
        }

        /*
        Set the value of the UserRegion input for this Choreo. ((optional, string) The AWS region that corresponds to the SNS endpoint you wish to access. The default region is "us-east-1". See description below for valid values.)
        */
        this.set_UserRegion = function(value) {
            this.setInput("UserRegion", value);
        }

}

/*
A ResultSet with methods tailored to the values returned by the Publish Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var PublishResultSet = function(resultStream) {
    PublishResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((xml) The response from Amazon.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
}

util.inherits(Publish, choreography.Choreography);
util.inherits(PublishInputSet, choreography.InputSet);
util.inherits(PublishResultSet, choreography.ResultSet);
exports.Publish = Publish;

/*
    RemovePermission
    Removes the statement from a topic's access control policy that was created with the AddPermission action.
*/

var RemovePermission = function(session) {
    /*
        Create a new instance of the RemovePermission Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Amazon/SNS/RemovePermission"
    RemovePermission.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new RemovePermissionResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new RemovePermissionInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the RemovePermission
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var RemovePermissionInputSet = function() {
    RemovePermissionInputSet.super_.call(this);
        /*
        Set the value of the AWSAccessKeyId input for this Choreo. ((required, string) The Access Key ID provided by Amazon Web Services.)
        */
        this.set_AWSAccessKeyId = function(value) {
            this.setInput("AWSAccessKeyId", value);
        }

        /*
        Set the value of the AWSSecretKeyId input for this Choreo. ((required, string) The Secret Key ID provided by Amazon Web Services.)
        */
        this.set_AWSSecretKeyId = function(value) {
            this.setInput("AWSSecretKeyId", value);
        }

        /*
        Set the value of the Label input for this Choreo. ((required, string) The unique identifier for the policy statement that you want to delete.)
        */
        this.set_Label = function(value) {
            this.setInput("Label", value);
        }

        /*
        Set the value of the TopicArn input for this Choreo. ((required, string) The ARN of the topic that has an access control policy you want to adjust.)
        */
        this.set_TopicArn = function(value) {
            this.setInput("TopicArn", value);
        }

        /*
        Set the value of the UserRegion input for this Choreo. ((optional, string) The AWS region that corresponds to the SNS endpoint you wish to access. The default region is "us-east-1". See description below for valid values.)
        */
        this.set_UserRegion = function(value) {
            this.setInput("UserRegion", value);
        }

}

/*
A ResultSet with methods tailored to the values returned by the RemovePermission Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var RemovePermissionResultSet = function(resultStream) {
    RemovePermissionResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((xml) The response from Amazon.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
}

util.inherits(RemovePermission, choreography.Choreography);
util.inherits(RemovePermissionInputSet, choreography.InputSet);
util.inherits(RemovePermissionResultSet, choreography.ResultSet);
exports.RemovePermission = RemovePermission;

/*
    SetTopicAttributes
    Allows a topic owner to update the attribute of a topic to a new value.
*/

var SetTopicAttributes = function(session) {
    /*
        Create a new instance of the SetTopicAttributes Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Amazon/SNS/SetTopicAttributes"
    SetTopicAttributes.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new SetTopicAttributesResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new SetTopicAttributesInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the SetTopicAttributes
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var SetTopicAttributesInputSet = function() {
    SetTopicAttributesInputSet.super_.call(this);
        /*
        Set the value of the AWSAccessKeyId input for this Choreo. ((required, string) The Access Key ID provided by Amazon Web Services.)
        */
        this.set_AWSAccessKeyId = function(value) {
            this.setInput("AWSAccessKeyId", value);
        }

        /*
        Set the value of the AWSSecretKeyId input for this Choreo. ((required, string) The Secret Key ID provided by Amazon Web Services.)
        */
        this.set_AWSSecretKeyId = function(value) {
            this.setInput("AWSSecretKeyId", value);
        }

        /*
        Set the value of the AttributeName input for this Choreo. ((required, string) The name of the attribute you want to modify. Valid values are: Policy and DisplayName.)
        */
        this.set_AttributeName = function(value) {
            this.setInput("AttributeName", value);
        }

        /*
        Set the value of the AttributeValue input for this Choreo. ((required, string) The new value for the attribute that you want to update.)
        */
        this.set_AttributeValue = function(value) {
            this.setInput("AttributeValue", value);
        }

        /*
        Set the value of the TopicArn input for this Choreo. ((required, string) The ARN of the topic that has an attribute that you want to set.)
        */
        this.set_TopicArn = function(value) {
            this.setInput("TopicArn", value);
        }

        /*
        Set the value of the UserRegion input for this Choreo. ((optional, string) The AWS region that corresponds to the SNS endpoint you wish to access. The default region is "us-east-1". See description below for valid values.)
        */
        this.set_UserRegion = function(value) {
            this.setInput("UserRegion", value);
        }

}

/*
A ResultSet with methods tailored to the values returned by the SetTopicAttributes Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var SetTopicAttributesResultSet = function(resultStream) {
    SetTopicAttributesResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((xml) The response from Amazon.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
}

util.inherits(SetTopicAttributes, choreography.Choreography);
util.inherits(SetTopicAttributesInputSet, choreography.InputSet);
util.inherits(SetTopicAttributesResultSet, choreography.ResultSet);
exports.SetTopicAttributes = SetTopicAttributes;

/*
    Subscribe
    Sends the endpoint a confirmation message in preparation for subscribing an endpoint.
*/

var Subscribe = function(session) {
    /*
        Create a new instance of the Subscribe Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Amazon/SNS/Subscribe"
    Subscribe.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new SubscribeResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new SubscribeInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the Subscribe
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var SubscribeInputSet = function() {
    SubscribeInputSet.super_.call(this);
        /*
        Set the value of the AWSAccessKeyId input for this Choreo. ((required, string) The Access Key ID provided by Amazon Web Services.)
        */
        this.set_AWSAccessKeyId = function(value) {
            this.setInput("AWSAccessKeyId", value);
        }

        /*
        Set the value of the AWSSecretKeyId input for this Choreo. ((required, string) The Secret Key ID provided by Amazon Web Services.)
        */
        this.set_AWSSecretKeyId = function(value) {
            this.setInput("AWSSecretKeyId", value);
        }

        /*
        Set the value of the Endpoint input for this Choreo. ((required, string) The endpoint that will receive the notifications. Can be an email address, URL, or the ARN of an Amazon SQS queue depending on the protocol specified.)
        */
        this.set_Endpoint = function(value) {
            this.setInput("Endpoint", value);
        }

        /*
        Set the value of the Protocol input for this Choreo. ((required, string) The protocol you want to use. Accepted values are: http, https, email, email-json, or sqs.)
        */
        this.set_Protocol = function(value) {
            this.setInput("Protocol", value);
        }

        /*
        Set the value of the TopicArn input for this Choreo. ((required, string) The ARN of the topic you want to subscribe to.)
        */
        this.set_TopicArn = function(value) {
            this.setInput("TopicArn", value);
        }

        /*
        Set the value of the UserRegion input for this Choreo. ((optional, string) The AWS region that corresponds to the SNS endpoint you wish to access. The default region is "us-east-1". See description below for valid values.)
        */
        this.set_UserRegion = function(value) {
            this.setInput("UserRegion", value);
        }

}

/*
A ResultSet with methods tailored to the values returned by the Subscribe Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var SubscribeResultSet = function(resultStream) {
    SubscribeResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((xml) The response from Amazon.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
}

util.inherits(Subscribe, choreography.Choreography);
util.inherits(SubscribeInputSet, choreography.InputSet);
util.inherits(SubscribeResultSet, choreography.ResultSet);
exports.Subscribe = Subscribe;

/*
    Unsubscribe
    Deletes a specified subscription.
*/

var Unsubscribe = function(session) {
    /*
        Create a new instance of the Unsubscribe Choreo. A TembooSession object, containing a valid
        set of Temboo credentials, must be supplied.
	*/
    var location = "/Library/Amazon/SNS/Unsubscribe"
    Unsubscribe.super_.call(this, session, location);

    /*
    Define a callback that will be used to appropriately format the results of this Choreo.
    */
    var newResultSet = function(resultStream) {
        return new UnsubscribeResultSet(resultStream);
    }

	/*
	Obtain a new InputSet object, used to specify the input values for an execution of this Choreo.
	*/
    this.newInputSet = function() {
        return new UnsubscribeInputSet();
    }

	/*
	Execute this Choreo with the specified inputs, calling the specified callback upon success,
	and the specified errorCallback upon error.
	*/
    this.execute = function(inputs, callback, errorCallback) {
        this._execute(inputs, newResultSet, callback, errorCallback);
    }
}

/*
An InputSet with methods appropriate for specifying the inputs to the Unsubscribe
Choreo. The InputSet object is used to specify input parameters when executing this Choreo.
*/

var UnsubscribeInputSet = function() {
    UnsubscribeInputSet.super_.call(this);
        /*
        Set the value of the AWSAccessKeyId input for this Choreo. ((required, string) The Access Key ID provided by Amazon Web Services.)
        */
        this.set_AWSAccessKeyId = function(value) {
            this.setInput("AWSAccessKeyId", value);
        }

        /*
        Set the value of the AWSSecretKeyId input for this Choreo. ((required, string) The Secret Key ID provided by Amazon Web Services.)
        */
        this.set_AWSSecretKeyId = function(value) {
            this.setInput("AWSSecretKeyId", value);
        }

        /*
        Set the value of the SubscriptionArn input for this Choreo. ((required, string) The ARN of the subscription you want to delete.)
        */
        this.set_SubscriptionArn = function(value) {
            this.setInput("SubscriptionArn", value);
        }

        /*
        Set the value of the UserRegion input for this Choreo. ((optional, string) The AWS region that corresponds to the SNS endpoint you wish to access. The default region is "us-east-1". See description below for valid values.)
        */
        this.set_UserRegion = function(value) {
            this.setInput("UserRegion", value);
        }

}

/*
A ResultSet with methods tailored to the values returned by the Unsubscribe Choreo.
The ResultSet object is used to retrieve the results of a Choreo execution.
*/

var UnsubscribeResultSet = function(resultStream) {
    UnsubscribeResultSet.super_.call(this, resultStream);
        /*
        Retrieve the value for the "Response" output from this Choreo execution. ((xml) The response from Amazon.)
        */
        this.get_Response = function() {
            return this.getResult("Response");
        }
}

util.inherits(Unsubscribe, choreography.Choreography);
util.inherits(UnsubscribeInputSet, choreography.InputSet);
util.inherits(UnsubscribeResultSet, choreography.ResultSet);
exports.Unsubscribe = Unsubscribe;

/******************************************************************************
Begin output wrapper classes
******************************************************************************/

/**
 * Utility function, to retrieve the array-type sub-item specified by the key from the parent (array) specified by the item.
 * Returns an empty array if key is not present.
 */
function getSubArrayByKey(item, key) {
	var val = item[key];
	if(val == null) {
		val = new Array();
	}
	return val;
}


text:
FactoryGirl.define do
  factory :cms_category,   class: 'comfy/cms/category'   do;
    label 'cat'
    categorized_type 'badger'
  end
end

redpajama_set_name: RedPajamaGithub


text:
namespace boost {
namespace context {

template< std::size_t Max, std::size_t Default, std::size_t Min >
class simple_stack_allocator
{
public:
    static std::size_t maximum_stacksize()
    { return Max; }

    static std::size_t default_stacksize()
    { return Default; }

    static std::size_t minimum_stacksize()
    { return Min; }

    void * allocate( std::size_t size) const
    {
        BOOST_ASSERT( minimum_stacksize() <= size);
        BOOST_ASSERT( maximum_stacksize() >= size);

        void * limit = std::calloc( size, sizeof( char) );
        if ( ! limit) throw std::bad_alloc();

        return static_cast< char * >( limit) + size;
    }

    void deallocate( void * vp, std::size_t size) const
    {
        BOOST_ASSERT( vp);
        BOOST_ASSERT( minimum_stacksize() <= size);
        BOOST_ASSERT( maximum_stacksize() >= size);

        void * limit = static_cast< char * >( vp) - size;
        std::free( limit);
    }
};

}}

#ifdef BOOST_HAS_ABI_HEADERS
#  include BOOST_ABI_SUFFIX
#endif

#endif // BOOST_CONTEXT_SIMPLE_STACK_ALLOCATOR_H


text:
cask "postgres-unofficial" do
  version "2.5.6"
  sha256 "0ee8211d5e5e5475f6c1e1ae3989d20424bc245c3936713f5f83086ef88d2067"

  url "https://github.com/PostgresApp/PostgresApp/releases/download/v#{version}/Postgres-#{version}-10-11-12-13-14.dmg",
      verified: "github.com/PostgresApp/PostgresApp/"
  name "Postgres"
  desc "App wrapper for Postgres"
  homepage "https://postgresapp.com/"

  livecheck do
    url :url
    strategy :github_latest
  end

  auto_updates true
  depends_on macos: ">= :sierra"

  app "Postgres.app"

  uninstall launchctl: "com.postgresapp.Postgres#{version.major}LoginHelper",
            quit:      [
              "com.postgresapp.Postgres#{version.major}",
              "com.postgresapp.Postgres#{version.major}MenuHelper",
            ]

  zap trash: [
    "~/Library/Application Support/Postgres",
    "~/Library/Caches/com.postgresapp.Postgres#{version.major}",
    "~/Library/Cookies/com.postgresapp.Postgres#{version.major}.binarycookies",
    "~/Library/Preferences/com.postgresapp.Postgres#{version.major}.plist",
  ]
end


text:
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>wat</title>
    <meta name="huehuehue."/>

    <meta name="viewport" content="width=1000, initial-scale=1.0, maximum-scale=1.0">

    <!-- Loading Bootstrap -->
    <link href="bootstrap/css/bootstrap.css" rel="stylesheet">

    <!-- Loading Flat UI -->
    <link href="css/flat-ui.css" rel="stylesheet">
    <link href="css/demo.css" rel="stylesheet">

    <link rel="shortcut icon" href="images/favicon.ico">
    <!-- insert in the document head -->

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
    <!--[if lt IE 9]>
      <script src="js/html5shiv.js"></script>
      <script src="js/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
   <object type="application/x-shockwave-flash" style="width:1440px; height:900px;" data="http://www.youtube.com/v/GnyDDARLlZ8?color2=FBE9EC&rel=0&loop=1&hd=1&autoplay=1&showsearch=0&version=3&modestbranding=1">
        <param name="movie" value="http://www.youtube.com/v/GnyDDARLlZ8?color2=FBE9EC&rel=0&loop=1&hd=1&autoplay=1&showsearch=0&version=3&modestbranding=1" />
        <param name="allowFullScreen" value="true" />
        <param name="allowscriptaccess" value="always" />
        </object>

    <!-- Load JS here for greater good =============================-->
    <script src="js/jquery-1.8.3.min.js"></script>
    <script src="js/jquery-ui-1.10.3.custom.min.js"></script>
    <script src="js/jquery.ui.touch-punch.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/bootstrap-select.js"></script>
    <script src="js/bootstrap-switch.js"></script>
    <script src="js/flatui-checkbox.js"></script>
    <script src="js/flatui-radio.js"></script>
    <script src="js/jquery.tagsinput.js"></script>
    <script src="js/jquery.placeholder.js"></script>
    <script src="js/jquery.stacktable.js"></script>
    <script src="http://vjs.zencdn.net/4.3/video.js"></script>
    <script src="js/application.js"></script>
  </body>
</html>


text:
package com.amazonaws.services.mediaconnect.model;

import java.io.Serializable;
import javax.annotation.Generated;

import com.amazonaws.AmazonWebServiceRequest;

/**
 * The fields that you want to update in the output.
 *
 * @see AWS API
 *      Documentation
 */
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class UpdateFlowOutputRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable {

    /**
     * The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses
     * should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
     */
    private java.util.List<String> cidrAllowList;
    /**
     * A description of the output. This description appears only on the AWS Elemental MediaConnect console and will not
     * be seen by the end user.
     */
    private String description;
    /** The IP address where you want to send the output. */
    private String destination;
    /**
     * The type of key used for the encryption. If no keyType is provided, the service will use the default setting
     * (static-key).
     */
    private UpdateEncryption encryption;
    /** The flow that is associated with the output that you want to update. */
    private String flowArn;
    /**
     * The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based
     * streams.
     */
    private Integer maxLatency;
    /** The media streams that are associated with the output, and the parameters for those associations. */
    private java.util.List<MediaStreamOutputConfigurationRequest> mediaStreamOutputConfigurations;
    /**
     * The minimum latency in milliseconds for SRT-based streams. In streams that use the SRT protocol, this value that
     * you set on your MediaConnect source or output represents the minimal potential latency of that connection. The
     * latency of the stream is set to the highest number between the sender's minimum latency and the receiver's minimum
     * latency.
     */
    private Integer minLatency;
    /** The ARN of the output that you want to update. */
    private String outputArn;
    /** The port to use when content is distributed to this output. */
    private Integer port;
    /** The protocol to use for the output. */
    private String protocol;
    /** The remote ID for the Zixi-pull stream. */
    private String remoteId;
    /** The port that the flow uses to send outbound requests to initiate connection with the sender. */
    private Integer senderControlPort;
    /** The IP address that the flow communicates with to initiate connection with the sender. */
    private String senderIpAddress;
    /** The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams. */
    private Integer smoothingLatency;
    /** The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams. */
    private String streamId;
    /** The name of the VPC interface attachment to use for this output. */
    private VpcInterfaceAttachment vpcInterfaceAttachment;

    /**
     * The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses
     * should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
     *
     * @return The range of IP addresses that should be allowed to initiate output requests to this flow. These IP
     *         addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example,
     *         10.0.0.0/16.
     */

    public java.util.List<String> getCidrAllowList() {
        return cidrAllowList;
    }

    /**
     * The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses
     * should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
     *
     * @param cidrAllowList
     *        The range of IP addresses that should be allowed to initiate output requests to this flow. These IP
     *        addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example,
     *        10.0.0.0/16.
     */

    public void setCidrAllowList(java.util.Collection<String> cidrAllowList) {
        if (cidrAllowList == null) {
            this.cidrAllowList = null;
            return;
        }

        this.cidrAllowList = new java.util.ArrayList<String>(cidrAllowList);
    }

    /**
     * The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses
     * should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
     *

     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setCidrAllowList(java.util.Collection)} or {@link #withCidrAllowList(java.util.Collection)} if you want
     * to override the existing values.
     *

     *
     * @param cidrAllowList
     *        The range of IP addresses that should be allowed to initiate output requests to this flow. These IP
     *        addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example,
     *        10.0.0.0/16.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withCidrAllowList(String... cidrAllowList) {
        if (this.cidrAllowList == null) {
            setCidrAllowList(new java.util.ArrayList<String>(cidrAllowList.length));
        }
        for (String ele : cidrAllowList) {
            this.cidrAllowList.add(ele);
        }
        return this;
    }

    /**
     * The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses
     * should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.
     *
     * @param cidrAllowList
     *        The range of IP addresses that should be allowed to initiate output requests to this flow. These IP
     *        addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example,
     *        10.0.0.0/16.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withCidrAllowList(java.util.Collection<String> cidrAllowList) {
        setCidrAllowList(cidrAllowList);
        return this;
    }

    /**
     * A description of the output. This description appears only on the AWS Elemental MediaConnect console and will not
     * be seen by the end user.
     *
     * @param description
     *        A description of the output. This description appears only on the AWS Elemental MediaConnect console and
     *        will not be seen by the end user.
     */

    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * A description of the output. This description appears only on the AWS Elemental MediaConnect console and will not
     * be seen by the end user.
     *
     * @return A description of the output. This description appears only on the AWS Elemental MediaConnect console and
     *         will not be seen by the end user.
     */

    public String getDescription() {
        return this.description;
    }

    /**
     * A description of the output. This description appears only on the AWS Elemental MediaConnect console and will not
     * be seen by the end user.
     *
     * @param description
     *        A description of the output. This description appears only on the AWS Elemental MediaConnect console and
     *        will not be seen by the end user.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withDescription(String description) {
        setDescription(description);
        return this;
    }

    /**
     * The IP address where you want to send the output.
     *
     * @param destination
     *        The IP address where you want to send the output.
     */

    public void setDestination(String destination) {
        this.destination = destination;
    }

    /**
     * The IP address where you want to send the output.
     *
     * @return The IP address where you want to send the output.
     */

    public String getDestination() {
        return this.destination;
    }

    /**
     * The IP address where you want to send the output.
     *
     * @param destination
     *        The IP address where you want to send the output.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withDestination(String destination) {
        setDestination(destination);
        return this;
    }

    /**
     * The type of key used for the encryption. If no keyType is provided, the service will use the default setting
     * (static-key).
     *
     * @param encryption
     *        The type of key used for the encryption. If no keyType is provided, the service will use the default
     *        setting (static-key).
     */

    public void setEncryption(UpdateEncryption encryption) {
        this.encryption = encryption;
    }

    /**
     * The type of key used for the encryption. If no keyType is provided, the service will use the default setting
     * (static-key).
     *
     * @return The type of key used for the encryption. If no keyType is provided, the service will use the default
     *         setting (static-key).
     */

    public UpdateEncryption getEncryption() {
        return this.encryption;
    }

    /**
     * The type of key used for the encryption. If no keyType is provided, the service will use the default setting
     * (static-key).
     *
     * @param encryption
     *        The type of key used for the encryption. If no keyType is provided, the service will use the default
     *        setting (static-key).
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withEncryption(UpdateEncryption encryption) {
        setEncryption(encryption);
        return this;
    }

    /**
     * The flow that is associated with the output that you want to update.
     *
     * @param flowArn
     *        The flow that is associated with the output that you want to update.
     */

    public void setFlowArn(String flowArn) {
        this.flowArn = flowArn;
    }

    /**
     * The flow that is associated with the output that you want to update.
     *
     * @return The flow that is associated with the output that you want to update.
     */

    public String getFlowArn() {
        return this.flowArn;
    }

    /**
     * The flow that is associated with the output that you want to update.
     *
     * @param flowArn
     *        The flow that is associated with the output that you want to update.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withFlowArn(String flowArn) {
        setFlowArn(flowArn);
        return this;
    }

    /**
     * The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based
     * streams.
     *
     * @param maxLatency
     *        The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and
     *        Fujitsu-based streams.
     */

    public void setMaxLatency(Integer maxLatency) {
        this.maxLatency = maxLatency;
    }

    /**
     * The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based
     * streams.
     *
     * @return The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and
     *         Fujitsu-based streams.
     */

    public Integer getMaxLatency() {
        return this.maxLatency;
    }

    /**
     * The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based
     * streams.
     *
     * @param maxLatency
     *        The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and
     *        Fujitsu-based streams.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withMaxLatency(Integer maxLatency) {
        setMaxLatency(maxLatency);
        return this;
    }

    /**
     * The media streams that are associated with the output, and the parameters for those associations.
     *
     * @return The media streams that are associated with the output, and the parameters for those associations.
     */

    public java.util.List<MediaStreamOutputConfigurationRequest> getMediaStreamOutputConfigurations() {
        return mediaStreamOutputConfigurations;
    }

    /**
     * The media streams that are associated with the output, and the parameters for those associations.
     *
     * @param mediaStreamOutputConfigurations
     *        The media streams that are associated with the output, and the parameters for those associations.
     */

    public void setMediaStreamOutputConfigurations(java.util.Collection<MediaStreamOutputConfigurationRequest> mediaStreamOutputConfigurations) {
        if (mediaStreamOutputConfigurations == null) {
            this.mediaStreamOutputConfigurations = null;
            return;
        }

        this.mediaStreamOutputConfigurations = new java.util.ArrayList<MediaStreamOutputConfigurationRequest>(mediaStreamOutputConfigurations);
    }

    /**
     * The media streams that are associated with the output, and the parameters for those associations.
     *

     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setMediaStreamOutputConfigurations(java.util.Collection)} or
     * {@link #withMediaStreamOutputConfigurations(java.util.Collection)} if you want to override the existing values.
     *

     *
     * @param mediaStreamOutputConfigurations
     *        The media streams that are associated with the output, and the parameters for those associations.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withMediaStreamOutputConfigurations(MediaStreamOutputConfigurationRequest... mediaStreamOutputConfigurations) {
        if (this.mediaStreamOutputConfigurations == null) {
            setMediaStreamOutputConfigurations(new java.util.ArrayList<MediaStreamOutputConfigurationRequest>(mediaStreamOutputConfigurations.length));
        }
        for (MediaStreamOutputConfigurationRequest ele : mediaStreamOutputConfigurations) {
            this.mediaStreamOutputConfigurations.add(ele);
        }
        return this;
    }

    /**
     * The media streams that are associated with the output, and the parameters for those associations.
     *
     * @param mediaStreamOutputConfigurations
     *        The media streams that are associated with the output, and the parameters for those associations.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withMediaStreamOutputConfigurations(
            java.util.Collection<MediaStreamOutputConfigurationRequest> mediaStreamOutputConfigurations) {
        setMediaStreamOutputConfigurations(mediaStreamOutputConfigurations);
        return this;
    }

    /**
     * The minimum latency in milliseconds for SRT-based streams. In streams that use the SRT protocol, this value that
     * you set on your MediaConnect source or output represents the minimal potential latency of that connection. The
     * latency of the stream is set to the highest number between the sender's minimum latency and the receiver's minimum
     * latency.
     *
     * @param minLatency
     *        The minimum latency in milliseconds for SRT-based streams. In streams that use the SRT protocol, this
     *        value that you set on your MediaConnect source or output represents the minimal potential latency of that
     *        connection. The latency of the stream is set to the highest number between the sender's minimum latency
     *        and the receiver's minimum latency.
     */

    public void setMinLatency(Integer minLatency) {
        this.minLatency = minLatency;
    }

    /**
     * The minimum latency in milliseconds for SRT-based streams. In streams that use the SRT protocol, this value that
     * you set on your MediaConnect source or output represents the minimal potential latency of that connection. The
     * latency of the stream is set to the highest number between the sender's minimum latency and the receiver's minimum
     * latency.
     *
     * @return The minimum latency in milliseconds for SRT-based streams. In streams that use the SRT protocol, this
     *         value that you set on your MediaConnect source or output represents the minimal potential latency of that
     *         connection. The latency of the stream is set to the highest number between the sender's minimum latency
     *         and the receiver's minimum latency.
     */

    public Integer getMinLatency() {
        return this.minLatency;
    }

    /**
     * The minimum latency in milliseconds for SRT-based streams. In streams that use the SRT protocol, this value that
     * you set on your MediaConnect source or output represents the minimal potential latency of that connection. The
     * latency of the stream is set to the highest number between the sender's minimum latency and the receiver's minimum
     * latency.
     *
     * @param minLatency
     *        The minimum latency in milliseconds for SRT-based streams. In streams that use the SRT protocol, this
     *        value that you set on your MediaConnect source or output represents the minimal potential latency of that
     *        connection. The latency of the stream is set to the highest number between the sender's minimum latency
     *        and the receiver's minimum latency.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withMinLatency(Integer minLatency) {
        setMinLatency(minLatency);
        return this;
    }

    /**
     * The ARN of the output that you want to update.
     *
     * @param outputArn
     *        The ARN of the output that you want to update.
     */

    public void setOutputArn(String outputArn) {
        this.outputArn = outputArn;
    }

    /**
     * The ARN of the output that you want to update.
     *
     * @return The ARN of the output that you want to update.
     */

    public String getOutputArn() {
        return this.outputArn;
    }

    /**
     * The ARN of the output that you want to update.
     *
     * @param outputArn
     *        The ARN of the output that you want to update.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withOutputArn(String outputArn) {
        setOutputArn(outputArn);
        return this;
    }

    /**
     * The port to use when content is distributed to this output.
     *
     * @param port
     *        The port to use when content is distributed to this output.
     */

    public void setPort(Integer port) {
        this.port = port;
    }

    /**
     * The port to use when content is distributed to this output.
     *
     * @return The port to use when content is distributed to this output.
     */

    public Integer getPort() {
        return this.port;
    }

    /**
     * The port to use when content is distributed to this output.
     *
     * @param port
     *        The port to use when content is distributed to this output.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withPort(Integer port) {
        setPort(port);
        return this;
    }

    /**
     * The protocol to use for the output.
     *
     * @param protocol
     *        The protocol to use for the output.
     * @see Protocol
     */

    public void setProtocol(String protocol) {
        this.protocol = protocol;
    }

    /**
     * The protocol to use for the output.
     *
     * @return The protocol to use for the output.
     * @see Protocol
     */

    public String getProtocol() {
        return this.protocol;
    }

    /**
     * The protocol to use for the output.
     *
     * @param protocol
     *        The protocol to use for the output.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see Protocol
     */

    public UpdateFlowOutputRequest withProtocol(String protocol) {
        setProtocol(protocol);
        return this;
    }

    /**
     * The protocol to use for the output.
     *
     * @param protocol
     *        The protocol to use for the output.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see Protocol
     */

    public UpdateFlowOutputRequest withProtocol(Protocol protocol) {
        this.protocol = protocol.toString();
        return this;
    }

    /**
     * The remote ID for the Zixi-pull stream.
     *
     * @param remoteId
     *        The remote ID for the Zixi-pull stream.
     */

    public void setRemoteId(String remoteId) {
        this.remoteId = remoteId;
    }

    /**
     * The remote ID for the Zixi-pull stream.
     *
     * @return The remote ID for the Zixi-pull stream.
     */

    public String getRemoteId() {
        return this.remoteId;
    }

    /**
     * The remote ID for the Zixi-pull stream.
     *
     * @param remoteId
     *        The remote ID for the Zixi-pull stream.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withRemoteId(String remoteId) {
        setRemoteId(remoteId);
        return this;
    }

    /**
     * The port that the flow uses to send outbound requests to initiate connection with the sender.
     *
     * @param senderControlPort
     *        The port that the flow uses to send outbound requests to initiate connection with the sender.
     */

    public void setSenderControlPort(Integer senderControlPort) {
        this.senderControlPort = senderControlPort;
    }

    /**
     * The port that the flow uses to send outbound requests to initiate connection with the sender.
     *
     * @return The port that the flow uses to send outbound requests to initiate connection with the sender.
     */

    public Integer getSenderControlPort() {
        return this.senderControlPort;
    }

    /**
     * The port that the flow uses to send outbound requests to initiate connection with the sender.
     *
     * @param senderControlPort
     *        The port that the flow uses to send outbound requests to initiate connection with the sender.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withSenderControlPort(Integer senderControlPort) {
        setSenderControlPort(senderControlPort);
        return this;
    }

    /**
     * The IP address that the flow communicates with to initiate connection with the sender.
     *
     * @param senderIpAddress
     *        The IP address that the flow communicates with to initiate connection with the sender.
     */

    public void setSenderIpAddress(String senderIpAddress) {
        this.senderIpAddress = senderIpAddress;
    }

    /**
     * The IP address that the flow communicates with to initiate connection with the sender.
     *
     * @return The IP address that the flow communicates with to initiate connection with the sender.
     */

    public String getSenderIpAddress() {
        return this.senderIpAddress;
    }

    /**
     * The IP address that the flow communicates with to initiate connection with the sender.
     *
     * @param senderIpAddress
     *        The IP address that the flow communicates with to initiate connection with the sender.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withSenderIpAddress(String senderIpAddress) {
        setSenderIpAddress(senderIpAddress);
        return this;
    }

    /**
     * The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.
     *
     * @param smoothingLatency
     *        The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.
     */

    public void setSmoothingLatency(Integer smoothingLatency) {
        this.smoothingLatency = smoothingLatency;
    }

    /**
     * The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.
     *
     * @return The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.
     */

    public Integer getSmoothingLatency() {
        return this.smoothingLatency;
    }

    /**
     * The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.
     *
     * @param smoothingLatency
     *        The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withSmoothingLatency(Integer smoothingLatency) {
        setSmoothingLatency(smoothingLatency);
        return this;
    }

    /**
     * The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.
     *
     * @param streamId
     *        The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.
     */

    public void setStreamId(String streamId) {
        this.streamId = streamId;
    }

    /**
     * The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.
     *
     * @return The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.
     */

    public String getStreamId() {
        return this.streamId;
    }

    /**
     * The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.
     *
     * @param streamId
     *        The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withStreamId(String streamId) {
        setStreamId(streamId);
        return this;
    }

    /**
     * The name of the VPC interface attachment to use for this output.
     *
     * @param vpcInterfaceAttachment
     *        The name of the VPC interface attachment to use for this output.
     */

    public void setVpcInterfaceAttachment(VpcInterfaceAttachment vpcInterfaceAttachment) {
        this.vpcInterfaceAttachment = vpcInterfaceAttachment;
    }

    /**
     * The name of the VPC interface attachment to use for this output.
     *
     * @return The name of the VPC interface attachment to use for this output.
     */

    public VpcInterfaceAttachment getVpcInterfaceAttachment() {
        return this.vpcInterfaceAttachment;
    }

    /**
     * The name of the VPC interface attachment to use for this output.
     *
     * @param vpcInterfaceAttachment
     *        The name of the VPC interface attachment to use for this output.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public UpdateFlowOutputRequest withVpcInterfaceAttachment(VpcInterfaceAttachment vpcInterfaceAttachment) {
        setVpcInterfaceAttachment(vpcInterfaceAttachment);
        return this;
    }

    /**
     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
     * redacted from this string using a placeholder value.
     *
     * @return A string representation of this object.
     *
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        if (getCidrAllowList() != null)
            sb.append("CidrAllowList: ").append(getCidrAllowList()).append(",");
        if (getDescription() != null)
            sb.append("Description: ").append(getDescription()).append(",");
        if (getDestination() != null)
            sb.append("Destination: ").append(getDestination()).append(",");
        if (getEncryption() != null)
            sb.append("Encryption: ").append(getEncryption()).append(",");
        if (getFlowArn() != null)
            sb.append("FlowArn: ").append(getFlowArn()).append(",");
        if (getMaxLatency() != null)
            sb.append("MaxLatency: ").append(getMaxLatency()).append(",");
        if (getMediaStreamOutputConfigurations() != null)
            sb.append("MediaStreamOutputConfigurations: ").append(getMediaStreamOutputConfigurations()).append(",");
        if (getMinLatency() != null)
            sb.append("MinLatency: ").append(getMinLatency()).append(",");
        if (getOutputArn() != null)
            sb.append("OutputArn: ").append(getOutputArn()).append(",");
        if (getPort() != null)
            sb.append("Port: ").append(getPort()).append(",");
        if (getProtocol() != null)
            sb.append("Protocol: ").append(getProtocol()).append(",");
        if (getRemoteId() != null)
            sb.append("RemoteId: ").append(getRemoteId()).append(",");
        if (getSenderControlPort() != null)
            sb.append("SenderControlPort: ").append(getSenderControlPort()).append(",");
        if (getSenderIpAddress() != null)
            sb.append("SenderIpAddress: ").append(getSenderIpAddress()).append(",");
        if (getSmoothingLatency() != null)
            sb.append("SmoothingLatency: ").append(getSmoothingLatency()).append(",");
        if (getStreamId() != null)
            sb.append("StreamId: ").append(getStreamId()).append(",");
        if (getVpcInterfaceAttachment() != null)
            sb.append("VpcInterfaceAttachment: ").append(getVpcInterfaceAttachment());
        sb.append("}");
        return sb.toString();
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;

        if (obj instanceof UpdateFlowOutputRequest == false)
            return false;
        UpdateFlowOutputRequest other = (UpdateFlowOutputRequest) obj;
        if (other.getCidrAllowList() == null ^ this.getCidrAllowList() == null)
            return false;
        if (other.getCidrAllowList() != null && other.getCidrAllowList().equals(this.getCidrAllowList()) == false)
            return false;
        if (other.getDescription() == null ^ this.getDescription() == null)
            return false;
        if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false)
            return false;
        if (other.getDestination() == null ^ this.getDestination() == null)
            return false;
        if (other.getDestination() != null && other.getDestination().equals(this.getDestination()) == false)
            return false;
        if (other.getEncryption() == null ^ this.getEncryption() == null)
            return false;
        if (other.getEncryption() != null && other.getEncryption().equals(this.getEncryption()) == false)
            return false;
        if (other.getFlowArn() == null ^ this.getFlowArn() == null)
            return false;
        if (other.getFlowArn() != null && other.getFlowArn().equals(this.getFlowArn()) == false)
            return false;
        if (other.getMaxLatency() == null ^ this.getMaxLatency() == null)
            return false;
        if (other.getMaxLatency() != null && other.getMaxLatency().equals(this.getMaxLatency()) == false)
            return false;
        if (other.getMediaStreamOutputConfigurations() == null ^ this.getMediaStreamOutputConfigurations() == null)
            return false;
        if (other.getMediaStreamOutputConfigurations() != null
                && other.getMediaStreamOutputConfigurations().equals(this.getMediaStreamOutputConfigurations()) == false)
            return false;
        if (other.getMinLatency() == null ^ this.getMinLatency() == null)
            return false;
        if (other.getMinLatency() != null && other.getMinLatency().equals(this.getMinLatency()) == false)
            return false;
        if (other.getOutputArn() == null ^ this.getOutputArn() == null)
            return false;
        if (other.getOutputArn() != null && other.getOutputArn().equals(this.getOutputArn()) == false)
            return false;
        if (other.getPort() == null ^ this.getPort() == null)
            return false;
        if (other.getPort() != null && other.getPort().equals(this.getPort()) == false)
            return false;
        if (other.getProtocol() == null ^ this.getProtocol() == null)
            return false;
        if (other.getProtocol() != null && other.getProtocol().equals(this.getProtocol()) == false)
            return false;
        if (other.getRemoteId() == null ^ this.getRemoteId() == null)
            return false;
        if (other.getRemoteId() != null && other.getRemoteId().equals(this.getRemoteId()) == false)
            return false;
        if (other.getSenderControlPort() == null ^ this.getSenderControlPort() == null)
            return false;
        if (other.getSenderControlPort() != null && other.getSenderControlPort().equals(this.getSenderControlPort()) == false)
            return false;
        if (other.getSenderIpAddress() == null ^ this.getSenderIpAddress() == null)
            return false;
        if (other.getSenderIpAddress() != null && other.getSenderIpAddress().equals(this.getSenderIpAddress()) == false)
            return false;
        if (other.getSmoothingLatency() == null ^ this.getSmoothingLatency() == null)
            return false;
        if (other.getSmoothingLatency() != null && other.getSmoothingLatency().equals(this.getSmoothingLatency()) == false)
            return false;
        if (other.getStreamId() == null ^ this.getStreamId() == null)
            return false;
        if (other.getStreamId() != null && other.getStreamId().equals(this.getStreamId()) == false)
            return false;
        if (other.getVpcInterfaceAttachment() == null ^ this.getVpcInterfaceAttachment() == null)
            return false;
        if (other.getVpcInterfaceAttachment() != null && other.getVpcInterfaceAttachment().equals(this.getVpcInterfaceAttachment()) == false)
            return false;
        return true;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;

        hashCode = prime * hashCode + ((getCidrAllowList() == null) ? 0 : getCidrAllowList().hashCode());
        hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode());
        hashCode = prime * hashCode + ((getDestination() == null) ? 0 : getDestination().hashCode());
        hashCode = prime * hashCode + ((getEncryption() == null) ? 0 : getEncryption().hashCode());
        hashCode = prime * hashCode + ((getFlowArn() == null) ? 0 : getFlowArn().hashCode());
        hashCode = prime * hashCode + ((getMaxLatency() == null) ? 0 : getMaxLatency().hashCode());
        hashCode = prime * hashCode + ((getMediaStreamOutputConfigurations() == null) ? 0 : getMediaStreamOutputConfigurations().hashCode());
        hashCode = prime * hashCode + ((getMinLatency() == null) ? 0 : getMinLatency().hashCode());
        hashCode = prime * hashCode + ((getOutputArn() == null) ? 0 : getOutputArn().hashCode());
        hashCode = prime * hashCode + ((getPort() == null) ? 0 : getPort().hashCode());
        hashCode = prime * hashCode + ((getProtocol() == null) ? 0 : getProtocol().hashCode());
        hashCode = prime * hashCode + ((getRemoteId() == null) ? 0 : getRemoteId().hashCode());
        hashCode = prime * hashCode + ((getSenderControlPort() == null) ? 0 : getSenderControlPort().hashCode());
        hashCode = prime * hashCode + ((getSenderIpAddress() == null) ? 0 : getSenderIpAddress().hashCode());
        hashCode = prime * hashCode + ((getSmoothingLatency() == null) ? 0 : getSmoothingLatency().hashCode());
        hashCode = prime * hashCode + ((getStreamId() == null) ? 0 : getStreamId().hashCode());
        hashCode = prime * hashCode + ((getVpcInterfaceAttachment() == null) ? 0 : getVpcInterfaceAttachment().hashCode());
        return hashCode;
    }

    @Override
    public UpdateFlowOutputRequest clone() {
        return (UpdateFlowOutputRequest) super.clone();
    }

}


text:
package com.querydsl.sql;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * Defines the related SQL table column for a property
 *
 * @author tiwe
 *
 */
@Documented
@Target({FIELD,METHOD})
@Retention(RUNTIME)
public @interface Column {

    /**
     * Get the column name
     *
     * @return column name
     */
    String value();

}


text:
Security Advisory

    Back to advisories

        <?php get_template_part('advisories/advisory-side'); ?>

Resource Exthaustion when sanitizing filenames (oC-SA-2015-007)

24th June 2015

Risk level: Medium

CVSS v2 Base Score: 7.8 (AV:N/AC:L/Au:N/C:N/I:N/A:C)

CWE: Uncontrolled Resource Consumption ('Resource Exhaustion') (CWE-400)

Description

The sanitization component for filenames was vulnerable to DoS when parsing specially crafted file names passed via specific endpoints.

Effectively this lead to a endless loop filling the log file until the system is not anymore responsive.

Affected Software

ownCloud Server < 6.0.8 (CVE-2015-4717)

ownCloud Server < 7.0.6 (CVE-2015-4717)

ownCloud Server < 8.0.4 (CVE-2015-4717)

Action Taken

This was caused by the PHP behaviour of allowing to cast $_GET values to an array. The critical usages have been fixed in all affected versions and with ownCloud 8.1 the usages of $_GET in the whole code base has been reviewed.

Acknowledgements

The ownCloud team thanks the following people for their research and responsible disclosure of the above advisory:

Emiel Florijn - Vulnerability discovery and disclosure.


text:
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
			  android:orientation="horizontal"
			  android:layout_width="match_parent"
			  android:layout_height="match_parent">

	<Spinner
			android:id="@+id/spinner_enhance"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"
			android:gravity="center"
			android:layout_gravity="center" />

	<CheckBox
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"
			android:text="Color"
			android:checked="false"
			android:id="@+id/check_color" android:layout_gravity="center"/>

</LinearLayout>


text:
package de.unibi.cebitec.bibigrid.googlecloud;

import com.google.api.services.compute.Compute;
import com.google.api.services.compute.model.MachineType;
import com.google.api.services.compute.model.MachineTypesScopedList;
import de.unibi.cebitec.bibigrid.core.Validator;
import de.unibi.cebitec.bibigrid.core.intents.*;
import de.unibi.cebitec.bibigrid.core.model.*;
import de.unibi.cebitec.bibigrid.core.model.exceptions.ClientConnectionFailedException;
import de.unibi.cebitec.bibigrid.core.model.exceptions.ConfigurationException;

import java.util.HashMap;
import java.util.Map;

/**
 * @author mfriedrichs(at)techfak.uni-bielefeld.de
 */
@SuppressWarnings("unused")
public class ProviderModuleGoogleCloud extends ProviderModule {
    @Override
    public String getName() {
        return "googlecloud";
    }

    @Override
    public Class<? extends Configuration> getConfigurationClass() {
        return ConfigurationGoogleCloud.class;
    }

    @Override
    public Validator getValidator(Configuration config, ProviderModule module) throws ConfigurationException {
        return new ValidatorGoogleCloud(config, module);
    }

    @Override
    public void createClient(Configuration config) throws ClientConnectionFailedException {
        client = new ClientGoogleCloud((ConfigurationGoogleCloud) config);
    }

    @Override
    public ListIntent getListIntent(Map<String, Cluster> clusterMap) {
        return new ListIntentGoogleCloud(this, clusterMap);
    }

    @Override
    public TerminateIntent getTerminateIntent(Configuration config) {
        return new TerminateIntentGoogleCloud(this, client, (ConfigurationGoogleCloud) config);
    }

    @Override
    public PrepareIntent getPrepareIntent(Configuration config) {
        return new PrepareIntentGoogleCloud(this, client, (ConfigurationGoogleCloud) config);
    }

    @Override
    public CreateCluster getCreateIntent(Configuration config, String clusterId) {
        return new CreateClusterGoogleCloud(this, (ConfigurationGoogleCloud) config, clusterId);
    }

    @Override
    public ScaleWorkerIntent getScaleWorkerIntent(Configuration config, String clusterId, int batchIndex, int count, String scaling) {
        return null;
    }

    @Override
    public LoadClusterConfigurationIntent getLoadClusterConfigurationIntent(Configuration config) {
        return null;
    }

    @Override
    public CreateClusterEnvironment getClusterEnvironment(CreateCluster cluster) throws ConfigurationException {
        return new CreateClusterEnvironmentGoogleCloud(client, (CreateClusterGoogleCloud) cluster);
    }

    @Override
    public ValidateIntent getValidateIntent(Configuration config) {
        return null;
    }

    @Override
    public String getBlockDeviceBase() {
        return "/dev/sd";
    }

    @Override
    protected HashMap<String, InstanceType> getInstanceTypeMap(Configuration config) {
        Compute compute = ((ClientGoogleCloud) client).getInternal();
        String projectId = ((ConfigurationGoogleCloud) config).getGoogleProjectId();
        String zone = config.getAvailabilityZone();
        HashMap<String, InstanceType> instanceTypes = new HashMap<>();
        try {
            if (zone == null) {
                for (MachineTypesScopedList scopedList :
                        compute.machineTypes().aggregatedList(projectId).execute().getItems().values()) {
                    for (MachineType f : scopedList.getMachineTypes()) {
                        instanceTypes.put(f.getName(), new InstanceTypeGoogleCloud(f));
                    }
                }
            } else {
                for (MachineType f : compute.machineTypes().list(projectId, zone).execute().getItems()) {
                    instanceTypes.put(f.getName(), new InstanceTypeGoogleCloud(f));
                }
            }
        } catch (Exception ignored) {
        }
        return instanceTypes;
    }
}