Search in sources :

Example 1 with LambdaConfiguration

use of com.amazonaws.services.s3.model.LambdaConfiguration in project aws-sdk-android by aws-amplify.

the class BucketConfigurationXmlFactory method convertToXmlByteArray.

/**
 * Converts the specified notification configuration into an XML byte array.
 *
 * @param notificationConfiguration The configuration to convert.
 * @return The XML byte array representation.
 */
public byte[] convertToXmlByteArray(BucketNotificationConfiguration notificationConfiguration) {
    final XmlWriter xml = new XmlWriter();
    xml.start("NotificationConfiguration", "xmlns", Constants.XML_NAMESPACE);
    final Map<String, NotificationConfiguration> configurations = notificationConfiguration.getConfigurations();
    for (final Map.Entry<String, NotificationConfiguration> entry : configurations.entrySet()) {
        final String configName = entry.getKey();
        final NotificationConfiguration config = entry.getValue();
        if (config instanceof TopicConfiguration) {
            xml.start("TopicConfiguration");
            xml.start("Id").value(configName).end();
            xml.start("Topic").value(((TopicConfiguration) config).getTopicARN()).end();
            addEventsAndFilterCriteria(xml, config);
            xml.end();
        } else if (config instanceof QueueConfiguration) {
            xml.start("QueueConfiguration");
            xml.start("Id").value(configName).end();
            xml.start("Queue").value(((QueueConfiguration) config).getQueueARN()).end();
            addEventsAndFilterCriteria(xml, config);
            xml.end();
        } else if (config instanceof CloudFunctionConfiguration) {
            xml.start("CloudFunctionConfiguration");
            xml.start("Id").value(configName).end();
            xml.start("InvocationRole").value(((CloudFunctionConfiguration) config).getInvocationRoleARN()).end();
            xml.start("CloudFunction").value(((CloudFunctionConfiguration) config).getCloudFunctionARN()).end();
            addEventsAndFilterCriteria(xml, config);
            xml.end();
        } else if (config instanceof LambdaConfiguration) {
            xml.start("CloudFunctionConfiguration");
            xml.start("Id").value(configName).end();
            xml.start("CloudFunction").value(((LambdaConfiguration) config).getFunctionARN()).end();
            addEventsAndFilterCriteria(xml, config);
            xml.end();
        }
    }
    xml.end();
    return xml.getBytes();
}
Also used : CloudFunctionConfiguration(com.amazonaws.services.s3.model.CloudFunctionConfiguration) QueueConfiguration(com.amazonaws.services.s3.model.QueueConfiguration) NotificationConfiguration(com.amazonaws.services.s3.model.NotificationConfiguration) BucketNotificationConfiguration(com.amazonaws.services.s3.model.BucketNotificationConfiguration) LambdaConfiguration(com.amazonaws.services.s3.model.LambdaConfiguration) TopicConfiguration(com.amazonaws.services.s3.model.BucketNotificationConfiguration.TopicConfiguration) Map(java.util.Map) XmlWriter(com.amazonaws.services.s3.internal.XmlWriter)

Example 2 with LambdaConfiguration

use of com.amazonaws.services.s3.model.LambdaConfiguration in project aws-sdk-android by aws-amplify.

the class BucketNotificationConfigurationStaxUnmarshallerTest method unmarshall_ValidLambdaConfiguration.

@Test
public void unmarshall_ValidLambdaConfiguration() throws Exception {
    final BucketNotificationConfiguration config = unmarshaller.unmarshall(getResource(LAMBDA_INPUT));
    final LambdaConfiguration lambdaConfig = (LambdaConfiguration) config.getConfigurationByName("LambdaConfigId");
    assertEquals("some-lambda-function-arn", lambdaConfig.getFunctionARN());
    assertEventsUnmarshalledCorrectly(lambdaConfig.getEvents());
    assertFilterRulesUnmarshalledCorrectly(lambdaConfig.getFilter().getS3KeyFilter().getFilterRules());
}
Also used : LambdaConfiguration(com.amazonaws.services.s3.model.LambdaConfiguration) BucketNotificationConfiguration(com.amazonaws.services.s3.model.BucketNotificationConfiguration) Test(org.junit.Test)

Aggregations

BucketNotificationConfiguration (com.amazonaws.services.s3.model.BucketNotificationConfiguration)2 LambdaConfiguration (com.amazonaws.services.s3.model.LambdaConfiguration)2 XmlWriter (com.amazonaws.services.s3.internal.XmlWriter)1 TopicConfiguration (com.amazonaws.services.s3.model.BucketNotificationConfiguration.TopicConfiguration)1 CloudFunctionConfiguration (com.amazonaws.services.s3.model.CloudFunctionConfiguration)1 NotificationConfiguration (com.amazonaws.services.s3.model.NotificationConfiguration)1 QueueConfiguration (com.amazonaws.services.s3.model.QueueConfiguration)1 Map (java.util.Map)1 Test (org.junit.Test)1