text:
<?xml version="1.0" encoding="UTF-8"?>
<Tokens version="1.0">
	<File path="Classes/AmazonAutoScalingClient.html">

		<Token>
			<TokenIdentifier>//apple_ref/occ/cl/AmazonAutoScalingClient</TokenIdentifier>
			<Abstract type="html">
Interface for accessing AmazonAutoScaling.</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

			<NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/describeAutoScalingGroups:</TokenIdentifier>
			<Abstract type="html">

Returns a full description of each Auto Scaling group in the given list. This includes all Amazon EC2 instances that
are members of the group. If a list of names is not provided, the service returns the full details of all Auto Scaling
groups.

This action supports pagination by returning a token if there are more pages to retrieve. To get the next page, call
this action again with the returned token as the NextToken parameter.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeAutoScalingGroupsRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeAutoScalingGroupsResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDescribeAutoScalingGroupsResponse *)describeAutoScalingGroups:(AutoScalingDescribeAutoScalingGroupsRequest *)describeAutoScalingGroupsRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>describeAutoScalingGroupsRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the DescribeAutoScalingGroups
service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the DescribeAutoScalingGroups service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/describeAutoScalingGroups:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/enableMetricsCollection:</TokenIdentifier>
			<Abstract type="html">

Enables monitoring of group metrics for the Auto Scaling group specified in AutoScalingGroupName .
You can specify the list of enabled metrics with the Metrics parameter.

Auto Scaling metrics collection can be turned on only if the InstanceMonitoring flag, in the Auto Scaling group's
launch configuration, is set to True .</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingEnableMetricsCollectionRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingEnableMetricsCollectionResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingEnableMetricsCollectionResponse *)enableMetricsCollection:(AutoScalingEnableMetricsCollectionRequest *)enableMetricsCollectionRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>enableMetricsCollectionRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the EnableMetricsCollection
service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/enableMetricsCollection:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/resumeProcesses:</TokenIdentifier>
			<Abstract type="html">

Resumes all suspended Auto Scaling processes for an Auto Scaling group. For information on suspending and resuming Auto
Scaling process, see
Suspend and Resume Auto Scaling Process  .

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingResumeProcessesRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingResumeProcessesResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingResumeProcessesResponse *)resumeProcesses:(AutoScalingResumeProcessesRequest *)resumeProcessesRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>resumeProcessesRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the ResumeProcesses service method on
AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/resumeProcesses:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/deleteLaunchConfiguration:</TokenIdentifier>
			<Abstract type="html">

Deletes the specified LaunchConfiguration.

The specified launch configuration must not be attached to an Auto Scaling group. When this call completes, the launch
configuration is no longer available for use.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDeleteLaunchConfigurationRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDeleteLaunchConfigurationResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDeleteLaunchConfigurationResponse *)deleteLaunchConfiguration:(AutoScalingDeleteLaunchConfigurationRequest *)deleteLaunchConfigurationRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>deleteLaunchConfigurationRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the DeleteLaunchConfiguration
service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/deleteLaunchConfiguration:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/describePolicies:</TokenIdentifier>
			<Abstract type="html">

Returns descriptions of what each policy does. This action supports pagination. If the response includes a token, there
are more records available. To get the additional records, repeat the request with the response token as the NextToken
parameter.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribePoliciesRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribePoliciesResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDescribePoliciesResponse *)describePolicies:(AutoScalingDescribePoliciesRequest *)describePoliciesRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>describePoliciesRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the DescribePolicies service method on
AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the DescribePolicies service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/describePolicies:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/describeScalingProcessTypes:</TokenIdentifier>
			<Abstract type="html">

Returns scaling process types for use in the ResumeProcesses and SuspendProcesses actions.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeScalingProcessTypesRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeScalingProcessTypesResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDescribeScalingProcessTypesResponse *)describeScalingProcessTypes:(AutoScalingDescribeScalingProcessTypesRequest *)describeScalingProcessTypesRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>describeScalingProcessTypesRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the
DescribeScalingProcessTypes service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the DescribeScalingProcessTypes service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/describeScalingProcessTypes:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/createAutoScalingGroup:</TokenIdentifier>
			<Abstract type="html">

Creates a new Auto Scaling group with the specified name and other attributes. When the creation request is completed,
the Auto Scaling group is ready to be used in other calls.

NOTE: The Auto Scaling group name must be unique within the scope of your AWS account.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingCreateAutoScalingGroupRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingCreateAutoScalingGroupResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingCreateAutoScalingGroupResponse *)createAutoScalingGroup:(AutoScalingCreateAutoScalingGroupRequest *)createAutoScalingGroupRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>createAutoScalingGroupRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the CreateAutoScalingGroup
service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/createAutoScalingGroup:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/describeScalingActivities:</TokenIdentifier>
			<Abstract type="html">

Returns the scaling activities for the specified Auto Scaling group.

If the specified ActivityIds list is empty, all the activities from the past six weeks are returned. Activities are
sorted by completion time. Activities still in progress appear first on the list.

This action supports pagination. If the response includes a token, there are more records available. To get the
additional records, repeat the request with the response token as the NextToken parameter.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeScalingActivitiesRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeScalingActivitiesResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDescribeScalingActivitiesResponse *)describeScalingActivities:(AutoScalingDescribeScalingActivitiesRequest *)describeScalingActivitiesRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>describeScalingActivitiesRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the DescribeScalingActivities
service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the DescribeScalingActivities service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/describeScalingActivities:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/describeNotificationConfigurations:</TokenIdentifier>
			<Abstract type="html">

Returns a list of notification actions associated with Auto Scaling groups for specified events.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeNotificationConfigurationsRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeNotificationConfigurationsResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDescribeNotificationConfigurationsResponse *)describeNotificationConfigurations:(AutoScalingDescribeNotificationConfigurationsRequest *)describeNotificationConfigurationsRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>describeNotificationConfigurationsRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the
DescribeNotificationConfigurations service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the DescribeNotificationConfigurations service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/describeNotificationConfigurations:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/describeTerminationPolicyTypes:</TokenIdentifier>
			<Abstract type="html">

Returns a list of all termination policies supported by Auto Scaling.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeTerminationPolicyTypesRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeTerminationPolicyTypesResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDescribeTerminationPolicyTypesResponse *)describeTerminationPolicyTypes:(AutoScalingDescribeTerminationPolicyTypesRequest *)describeTerminationPolicyTypesRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>describeTerminationPolicyTypesRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the
DescribeTerminationPolicyTypes service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the DescribeTerminationPolicyTypes service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/describeTerminationPolicyTypes:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/describeTags:</TokenIdentifier>
			<Abstract type="html">

Lists the Auto Scaling group tags.

You can use filters to limit results when describing tags. For example, you can query for tags of a particular Auto
Scaling group. You can specify multiple values for a filter. A tag must match at least one of the specified values for
it to be included in the results.

You can also specify multiple filters. The result includes information for a particular tag only if it matches all your
filters. If there's no match, no special message is returned.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeTagsRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeTagsResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDescribeTagsResponse *)describeTags:(AutoScalingDescribeTagsRequest *)describeTagsRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>describeTagsRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the DescribeTags service method on
AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the DescribeTags service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/describeTags:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/executePolicy:</TokenIdentifier>
			<Abstract type="html">

Executes the specified policy.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingExecutePolicyRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingExecutePolicyResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingExecutePolicyResponse *)executePolicy:(AutoScalingExecutePolicyRequest *)executePolicyRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>executePolicyRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the ExecutePolicy service method on
AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/executePolicy:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/deleteTags:</TokenIdentifier>
			<Abstract type="html">

Removes the specified tags or a set of tags from a set of resources.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDeleteTagsRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDeleteTagsResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDeleteTagsResponse *)deleteTags:(AutoScalingDeleteTagsRequest *)deleteTagsRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>deleteTagsRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the DeleteTags service method on
AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/deleteTags:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/putScalingPolicy:</TokenIdentifier>
			<Abstract type="html">

Creates or updates a policy for an Auto Scaling group. To update an existing policy, use the existing policy name and
set the parameter(s) you want to change. Any existing parameter not changed in an update to an existing policy is not
changed in this update request.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingPutScalingPolicyRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingPutScalingPolicyResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingPutScalingPolicyResponse *)putScalingPolicy:(AutoScalingPutScalingPolicyRequest *)putScalingPolicyRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>putScalingPolicyRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the PutScalingPolicy service method on
AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the PutScalingPolicy service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/putScalingPolicy:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/putNotificationConfiguration:</TokenIdentifier>
			<Abstract type="html">

Configures an Auto Scaling group to send notifications when specified events take place. Subscribers to this topic can
have messages for events delivered to an endpoint such as a web server or email address.

For more information see  Get Email Notifications
When Your Auto Scaling Group Changes

A new PutNotificationConfiguration overwrites an existing configuration.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingPutNotificationConfigurationRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingPutNotificationConfigurationResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingPutNotificationConfigurationResponse *)putNotificationConfiguration:(AutoScalingPutNotificationConfigurationRequest *)putNotificationConfigurationRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>putNotificationConfigurationRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the
PutNotificationConfiguration service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/putNotificationConfiguration:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/deletePolicy:</TokenIdentifier>
			<Abstract type="html">

Deletes a policy created by PutScalingPolicy.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDeletePolicyRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDeletePolicyResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDeletePolicyResponse *)deletePolicy:(AutoScalingDeletePolicyRequest *)deletePolicyRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>deletePolicyRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the DeletePolicy service method on
AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/deletePolicy:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/deleteNotificationConfiguration:</TokenIdentifier>
			<Abstract type="html">

Deletes notifications created by PutNotificationConfiguration.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDeleteNotificationConfigurationRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDeleteNotificationConfigurationResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDeleteNotificationConfigurationResponse *)deleteNotificationConfiguration:(AutoScalingDeleteNotificationConfigurationRequest *)deleteNotificationConfigurationRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>deleteNotificationConfigurationRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the
DeleteNotificationConfiguration service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/deleteNotificationConfiguration:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/deleteScheduledAction:</TokenIdentifier>
			<Abstract type="html">

Deletes a scheduled action previously created using the PutScheduledUpdateGroupAction.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDeleteScheduledActionRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDeleteScheduledActionResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDeleteScheduledActionResponse *)deleteScheduledAction:(AutoScalingDeleteScheduledActionRequest *)deleteScheduledActionRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>deleteScheduledActionRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the DeleteScheduledAction service
method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/deleteScheduledAction:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/setInstanceHealth:</TokenIdentifier>
			<Abstract type="html">

Sets the health status of a specified instance that belongs to any of your Auto Scaling groups.

For more information, see  Configure Health
Checks for Your Auto Scaling group  .

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingSetInstanceHealthRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingSetInstanceHealthResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingSetInstanceHealthResponse *)setInstanceHealth:(AutoScalingSetInstanceHealthRequest *)setInstanceHealthRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>setInstanceHealthRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the SetInstanceHealth service method
on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/setInstanceHealth:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/describeAutoScalingNotificationTypes:</TokenIdentifier>
			<Abstract type="html">

Returns a list of all notification types that are supported by Auto Scaling.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeAutoScalingNotificationTypesRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeAutoScalingNotificationTypesResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDescribeAutoScalingNotificationTypesResponse *)describeAutoScalingNotificationTypes:(AutoScalingDescribeAutoScalingNotificationTypesRequest *)describeAutoScalingNotificationTypesRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>describeAutoScalingNotificationTypesRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the
DescribeAutoScalingNotificationTypes service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the DescribeAutoScalingNotificationTypes service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/describeAutoScalingNotificationTypes:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/createOrUpdateTags:</TokenIdentifier>
			<Abstract type="html">

Creates new tags or updates existing tags for an Auto Scaling group.

NOTE: A tag's definition is composed of a resource ID, resource type, key and value, and the propagate flag.
Value and the propagate flag are optional parameters. See the Request Parameters for more information.

For information on creating tags for your Auto Scaling group, see  Tag Your Auto Scaling Groups and
Amazon EC2 Instances  .

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingCreateOrUpdateTagsRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingCreateOrUpdateTagsResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingCreateOrUpdateTagsResponse *)createOrUpdateTags:(AutoScalingCreateOrUpdateTagsRequest *)createOrUpdateTagsRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>createOrUpdateTagsRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the CreateOrUpdateTags service method
on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/createOrUpdateTags:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/suspendProcesses:</TokenIdentifier>
			<Abstract type="html">

Suspends Auto Scaling processes for an Auto Scaling group. To suspend specific process types, specify them by name with
the ScalingProcesses.member.N parameter. To suspend all process types, omit the ScalingProcesses.member.N parameter.

IMPORTANT: Suspending either of the two primary process types, Launch or Terminate, can prevent other process
types from functioning properly.

To resume processes that have been suspended, use ResumeProcesses For more information on suspending and resuming Auto
Scaling process, see
Suspend and Resume Auto Scaling Process  .

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingSuspendProcessesRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingSuspendProcessesResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingSuspendProcessesResponse *)suspendProcesses:(AutoScalingSuspendProcessesRequest *)suspendProcessesRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>suspendProcessesRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the SuspendProcesses service method on
AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/suspendProcesses:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/describeAutoScalingInstances:</TokenIdentifier>
			<Abstract type="html">

Returns a description of each Auto Scaling instance in the InstanceIds list. If a list is not provided, the service
returns the full details of all instances up to a maximum of 50. By default, the service returns a list of 20 items.

This action supports pagination by returning a token if there are more pages to retrieve. To get the next page, call
this action again with the returned token as the NextToken parameter.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeAutoScalingInstancesRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeAutoScalingInstancesResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDescribeAutoScalingInstancesResponse *)describeAutoScalingInstances:(AutoScalingDescribeAutoScalingInstancesRequest *)describeAutoScalingInstancesRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>describeAutoScalingInstancesRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the
DescribeAutoScalingInstances service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the DescribeAutoScalingInstances service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/describeAutoScalingInstances:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/createLaunchConfiguration:</TokenIdentifier>
			<Abstract type="html">

Creates a new launch configuration. The launch configuration name must be unique within the scope of the client's AWS
account. The maximum limit of launch configurations, which by default is 100, must not yet have been met; otherwise, the
call will fail. When created, the new launch configuration is available for immediate use.

You can create a launch configuration with Amazon EC2 security groups or with Amazon VPC security groups. However, you
can't use Amazon EC2 security groups together with Amazon VPC security groups, or vice versa.

NOTE: At this time, Auto Scaling launch configurations don't support compressed (e.g. zipped) user data files.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingCreateLaunchConfigurationRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingCreateLaunchConfigurationResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingCreateLaunchConfigurationResponse *)createLaunchConfiguration:(AutoScalingCreateLaunchConfigurationRequest *)createLaunchConfigurationRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>createLaunchConfigurationRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the CreateLaunchConfiguration
service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/createLaunchConfiguration:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/deleteAutoScalingGroup:</TokenIdentifier>
			<Abstract type="html">

Deletes the specified Auto Scaling group if the group has no instances and no scaling activities in progress.

NOTE: To remove all instances before calling DeleteAutoScalingGroup, you can call UpdateAutoScalingGroup to set
the minimum and maximum size of the AutoScalingGroup to zero.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDeleteAutoScalingGroupRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDeleteAutoScalingGroupResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDeleteAutoScalingGroupResponse *)deleteAutoScalingGroup:(AutoScalingDeleteAutoScalingGroupRequest *)deleteAutoScalingGroupRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>deleteAutoScalingGroupRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the DeleteAutoScalingGroup
service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/deleteAutoScalingGroup:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/disableMetricsCollection:</TokenIdentifier>
			<Abstract type="html">

Disables monitoring of group metrics for the Auto Scaling group specified in AutoScalingGroupName .
You can specify the list of affected metrics with the Metrics parameter.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDisableMetricsCollectionRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDisableMetricsCollectionResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDisableMetricsCollectionResponse *)disableMetricsCollection:(AutoScalingDisableMetricsCollectionRequest *)disableMetricsCollectionRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>disableMetricsCollectionRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the DisableMetricsCollection
service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/disableMetricsCollection:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/updateAutoScalingGroup:</TokenIdentifier>
			<Abstract type="html">

Updates the configuration for the specified AutoScalingGroup.

NOTE: To update an Auto Scaling group with a launch configuration that has the InstanceMonitoring flag set to
False, you must first ensure that collection of group metrics is disabled. Otherwise, calls to UpdateAutoScalingGroup
will fail. If you have previously enabled group metrics collection, you can disable collection of all group metrics by
calling DisableMetricsCollection.

The new settings are registered upon the completion of this call. Any launch configuration settings take effect on any
triggers after this call returns. Scaling activities that are currently in progress aren't affected.

NOTE: If a new value is specified for MinSize without specifying the value for DesiredCapacity, and if the new
MinSize is larger than the current size of the Auto Scaling Group, there will be an implicit call to SetDesiredCapacity
to set the group to the new MinSize. If a new value is specified for MaxSize without specifying the value for
DesiredCapacity, and the new MaxSize is smaller than the current size of the Auto Scaling Group, there will be an
implicit call to SetDesiredCapacity to set the group to the new MaxSize. All other optional parameters are left
unchanged if not passed in the request.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingUpdateAutoScalingGroupRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingUpdateAutoScalingGroupResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingUpdateAutoScalingGroupResponse *)updateAutoScalingGroup:(AutoScalingUpdateAutoScalingGroupRequest *)updateAutoScalingGroupRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>updateAutoScalingGroupRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the UpdateAutoScalingGroup
service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/updateAutoScalingGroup:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/describeLaunchConfigurations:</TokenIdentifier>
			<Abstract type="html">

Returns a full description of the launch configurations, or the specified launch configurations, if they exist.

If no name is specified, then the full details of all launch configurations are returned.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeLaunchConfigurationsRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeLaunchConfigurationsResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDescribeLaunchConfigurationsResponse *)describeLaunchConfigurations:(AutoScalingDescribeLaunchConfigurationsRequest *)describeLaunchConfigurationsRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>describeLaunchConfigurationsRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the
DescribeLaunchConfigurations service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the DescribeLaunchConfigurations service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/describeLaunchConfigurations:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/describeAdjustmentTypes:</TokenIdentifier>
			<Abstract type="html">

Returns policy adjustment types for use in the PutScalingPolicy action.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeAdjustmentTypesRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeAdjustmentTypesResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDescribeAdjustmentTypesResponse *)describeAdjustmentTypes:(AutoScalingDescribeAdjustmentTypesRequest *)describeAdjustmentTypesRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>describeAdjustmentTypesRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the DescribeAdjustmentTypes
service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the DescribeAdjustmentTypes service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/describeAdjustmentTypes:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/describeScheduledActions:</TokenIdentifier>
			<Abstract type="html">

Lists all the actions scheduled for your Auto Scaling group that haven't been executed. To see a list of actions
already executed, see the activity record returned in DescribeScalingActivities.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeScheduledActionsRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeScheduledActionsResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDescribeScheduledActionsResponse *)describeScheduledActions:(AutoScalingDescribeScheduledActionsRequest *)describeScheduledActionsRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>describeScheduledActionsRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the DescribeScheduledActions
service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the DescribeScheduledActions service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/describeScheduledActions:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/putScheduledUpdateGroupAction:</TokenIdentifier>
			<Abstract type="html">

Creates or updates a scheduled scaling action for an Auto Scaling group. When updating a scheduled scaling action, if
you leave a parameter unspecified, the corresponding value remains unchanged in the affected Auto Scaling group.

For information on creating or updating a scheduled action for your Auto Scaling group, see  Scale Based on a Schedule  .

NOTE: Auto Scaling supports the date and time expressed in "YYYY-MM-DDThh:mm:ssZ" format in UTC/GMT only.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingPutScheduledUpdateGroupActionRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingPutScheduledUpdateGroupActionResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingPutScheduledUpdateGroupActionResponse *)putScheduledUpdateGroupAction:(AutoScalingPutScheduledUpdateGroupActionRequest *)putScheduledUpdateGroupActionRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>putScheduledUpdateGroupActionRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the
PutScheduledUpdateGroupAction service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/putScheduledUpdateGroupAction:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/describeMetricCollectionTypes:</TokenIdentifier>
			<Abstract type="html">

Returns a list of metrics and a corresponding list of granularities for each metric.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeMetricCollectionTypesRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingDescribeMetricCollectionTypesResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingDescribeMetricCollectionTypesResponse *)describeMetricCollectionTypes:(AutoScalingDescribeMetricCollectionTypesRequest *)describeMetricCollectionTypesRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>describeMetricCollectionTypesRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the
DescribeMetricCollectionTypes service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the DescribeMetricCollectionTypes service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/describeMetricCollectionTypes:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/setDesiredCapacity:</TokenIdentifier>
			<Abstract type="html">

Sets the desired size of the specified AutoScalingGroup.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingSetDesiredCapacityRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingSetDesiredCapacityResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingSetDesiredCapacityResponse *)setDesiredCapacity:(AutoScalingSetDesiredCapacityRequest *)setDesiredCapacityRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>setDesiredCapacityRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the SetDesiredCapacity service method
on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>

			<Anchor>//api/name/setDesiredCapacity:</Anchor>
            <NodeRef refid="3"/>
		</Token>

		<Token>
			<TokenIdentifier>//apple_ref/occ/instm/AmazonAutoScalingClient/terminateInstanceInAutoScalingGroup:</TokenIdentifier>
			<Abstract type="html">

Terminates the specified instance. Optionally, the desired group size can be adjusted.

NOTE: This call simply registers a termination request. The termination of the instance cannot happen
immediately.

</Abstract>
			<DeclaredIn>AmazonAutoScalingClient.h</DeclaredIn>

	<RelatedTokens>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingTerminateInstanceInAutoScalingGroupRequest</TokenIdentifier>
		<TokenIdentifier>//apple_ref/occ/cl/AutoScalingTerminateInstanceInAutoScalingGroupResponse</TokenIdentifier>

	</RelatedTokens>

			<Declaration>- (AutoScalingTerminateInstanceInAutoScalingGroupResponse *)terminateInstanceInAutoScalingGroup:(AutoScalingTerminateInstanceInAutoScalingGroupRequest *)terminateInstanceInAutoScalingGroupRequest</Declaration>
			<Parameters>
				<Parameter>
					<Name>terminateInstanceInAutoScalingGroupRequest</Name>
					<Abstract type="html">Container for the necessary parameters to execute the
TerminateInstanceInAutoScalingGroup service method on AmazonAutoScaling.</Abstract>
				</Parameter>
			</Parameters>
			<ReturnValue><Abstract type="html">The response from the TerminateInstanceInAutoScalingGroup service method, as returned by AmazonAutoScaling.</Abstract></ReturnValue>
			<Anchor>//api/name/terminateInstanceInAutoScalingGroup:</Anchor>
            <NodeRef refid="3"/>
		</Token>

	</File>
</Tokens>


text:
package be.gest.model;

import java.util.Date;
import java.util.List;

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;

import be.gest.dao.PersonneDAO;
import be.gest.model.Address;
import be.gest.model.Departement;
import be.gest.model.Personne;
import be.gest.model.enumeration.TypeDepartement;
import be.gest.model.enumeration.TypePersonne;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath*:**/applicationContext.xml"})
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)

@Transactional
public class PersonneDaoTest{

	@Autowired
	private PersonneDAO personneDAO;

	@Test
	@Rollback(false)
	public void savePersonne() {

		Address add = new Address();
		add.setNomCommune("bxl");
		add.setCodePostal("1000");
		add.setNumero("1");
		add.setRue("bxl");

		Departement departement = new Departement();
		departement.setAddress(add);
		departement.setNom("brico");
		departement.setTypeDepartement(TypeDepartement.ARABEL);

		Personne p = new Personne();
		p.setDateNaissance(new Date());
		p.setNom("Bouchra");
		p.setPrenom("Bouchra");
		p.setTypePersonne(TypePersonne.INTERNE);

		p.setDepartement(departement);
		p.setAddress(add);

		personneDAO.save(p);

		p = new Personne();
		p.setDateNaissance(new Date());
		p.setNom("Pierre");
		p.setPrenom("Olivier");
		p.setTypePersonne(TypePersonne.EXTERNE);

		p.setDepartement(departement);
		p.setAddress(add);

		personneDAO.save(p);

		p = new Personne();
		p.setDateNaissance(new Date());
		p.setNom("Delhaye");
		p.setPrenom("Marc");
		p.setTypePersonne(TypePersonne.INTERNE);

		p.setDepartement(departement);
		p.setAddress(add);

		personneDAO.save(p);

		p = new Personne();
		p.setDateNaissance(new Date());
		p.setNom("Jean");
		p.setPrenom("Marado");
		p.setTypePersonne(TypePersonne.EXTERNE);

		p.setDepartement(departement);
		p.setAddress(add);

		personneDAO.save(p);

		p = new Personne();
		p.setDateNaissance(new Date());
		p.setNom("Isablee");
		p.setPrenom("Hondtis");
		p.setTypePersonne(TypePersonne.INTERNE);

		p.setDepartement(departement);
		p.setAddress(add);

		personneDAO.save(p);
	}
	@Test
	public void findAll() {

//		List<Personne> result = personneDAO.getAll(Personne.class);
//
//		Assert.assertNotNull(result);

	}
}

redpajama_set_name: RedPajamaGithub


text:
import { Platform } from '../platform/platform';
export declare class Haptic {
    plugin: any;
    constructor(platform: Platform);
    available(): boolean;
    selection(): void;
    gestureSelectionStart(): void;
    gestureSelectionChanged(): void;
    gestureSelectionEnd(): void;
    notification(options: {
        type: string;
    }): void;
    impact(options: {
        style: string;
    }): void;
}


text:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <VideoView
        android:id="@+id/vv_video"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center" />
</LinearLayout>


text:
package org.camunda.bpm.client.spi;

public interface DataFormatConfigurator<T extends DataFormat> {

  /**
   * @return the dataformat class this configurator can configure (including subclasses)
   */
  Class<T> getDataFormatClass();

  /**
   * Applies configuration to the desired format.
   * This method is invoked with all dataformats of the required type.
   */
  void configure(T dataFormat);

}


text:
namespace org {
  namespace apache {
    namespace lucene {
      namespace analysis {
        class TokenStream;
      }
    }
  }
}
namespace java {
  namespace lang {
    class Class;
  }
  namespace text {
    class Collator;
  }
  namespace io {
    class IOException;
  }
}
template<class T> class JArray;

namespace org {
  namespace apache {
    namespace lucene {
      namespace collation {

        class CollationKeyFilter : public ::org::apache::lucene::analysis::TokenFilter {
        public:
          enum {
            mid_init$_9b6c8506,
            mid_incrementToken_54c6a16a,
            max_mid
          };

          static ::java::lang::Class *class$;
          static jmethodID *mids$;
          static bool live$;
          static jclass initializeClass(bool);

          explicit CollationKeyFilter(jobject obj) : ::org::apache::lucene::analysis::TokenFilter(obj) {
            if (obj != NULL)
              env->getClass(initializeClass);
          }
          CollationKeyFilter(const CollationKeyFilter& obj) : ::org::apache::lucene::analysis::TokenFilter(obj) {}

          CollationKeyFilter(const ::org::apache::lucene::analysis::TokenStream &, const ::java::text::Collator &);

          jboolean incrementToken() const;
        };
      }
    }
  }
}

#include <Python.h>

namespace org {
  namespace apache {
    namespace lucene {
      namespace collation {
        extern PyTypeObject PY_TYPE(CollationKeyFilter);

        class t_CollationKeyFilter {
        public:
          PyObject_HEAD
          CollationKeyFilter object;
          static PyObject *wrap_Object(const CollationKeyFilter&);
          static PyObject *wrap_jobject(const jobject&);
          static void install(PyObject *module);
          static void initialize(PyObject *module);
        };
      }
    }
  }
}

#endif


text:
package examples.run;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import examples.services.AccountManager;

public class PojoApplicationWithSpring2 {

	public static void main(String[] args) {

		@SuppressWarnings("resource")
		BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext2.xml");

		AccountManager service = factory.getBean("accountManager", AccountManager.class);

		service.addAccount("0000-0001", "John Doe", 1000.0);
		service.addAccount("0000-0002", "John Doe", 2000.0);
		service.addAccount("0000-0003", "Jane Doe", 3000.0);
		service.addAccount("0000-0004", "Jill Doe", 4000.0);

		System.out.println("Number of accounts: " + service.getAccountCount());

	}

}


text: NodeJS offer management server application.


text:
static void
print_field(const char *label, char *str, int32_t len)
{
    char c = str[len];
    str[len] = '\0';
    printf("[%s=%s]\n", label, str);
    str[len] = c;
}

#define PRINT_FIELD(x) \
        print_field(# x, x, x ## Len)

#define PRINT_SUBFIELD(base, x) \
    PR_BEGIN_MACRO \
        if (x ## Len != -1) \
            print_field(# x, base + x ## Pos, x ## Len); \
    PR_END_MACRO

static void
parse_authority(nsIURLParser *urlParser, char *auth, int32_t authLen)
{
    PRINT_FIELD(auth);

    uint32_t usernamePos, passwordPos;
    int32_t usernameLen, passwordLen;
    uint32_t hostnamePos;
    int32_t hostnameLen, port;

    urlParser->ParseAuthority(auth, authLen,
                              &usernamePos, &usernameLen,
                              &passwordPos, &passwordLen,
                              &hostnamePos, &hostnameLen,
                              &port);

    PRINT_SUBFIELD(auth, username);
    PRINT_SUBFIELD(auth, password);
    PRINT_SUBFIELD(auth, hostname);
    if (port != -1)
        printf("[port=%d]\n", port);
}

static void
parse_file_path(nsIURLParser *urlParser, char *filepath, int32_t filepathLen)
{
    PRINT_FIELD(filepath);

    uint32_t dirPos, basePos, extPos;
    int32_t dirLen, baseLen, extLen;

    urlParser->ParseFilePath(filepath, filepathLen,
                             &dirPos, &dirLen,
                             &basePos, &baseLen,
                             &extPos, &extLen);

    PRINT_SUBFIELD(filepath, dir);
    PRINT_SUBFIELD(filepath, base);
    PRINT_SUBFIELD(filepath, ext);
}

static void
parse_path(nsIURLParser *urlParser, char *path, int32_t pathLen)
{
    PRINT_FIELD(path);

    uint32_t filePos, queryPos, refPos;
    int32_t fileLen, queryLen, refLen;

    urlParser->ParsePath(path, pathLen,
                         &filePos, &fileLen,
                         &queryPos, &queryLen,
                         &refPos, &refLen);

    if (fileLen != -1)
        parse_file_path(urlParser, path + filePos, fileLen);
    PRINT_SUBFIELD(path, query);
    PRINT_SUBFIELD(path, ref);
}

int
main(int argc, char **argv)
{
    if (test_common_init(&argc, &argv) != 0)
        return -1;

    if (argc < 2) {
        printf("usage: TestURLParser [-std|-noauth|-auth] <url>\n");
        return -1;
    }
    nsCOMPtr<nsIURLParser> urlParser;
    if (strcmp(argv[1], "-noauth") == 0) {
        urlParser = do_GetService(NS_NOAUTHURLPARSER_CONTRACTID);
        argv[1] = argv[2];
    }
    else if (strcmp(argv[1], "-auth") == 0) {
        urlParser = do_GetService(NS_AUTHURLPARSER_CONTRACTID);
        argv[1] = argv[2];
    }
    else {
        urlParser = do_GetService(NS_STDURLPARSER_CONTRACTID);
        if (strcmp(argv[1], "-std") == 0)
            argv[1] = argv[2];
        else
            printf("assuming -std\n");
    }
    if (urlParser) {
        printf("have urlParser @%p\n", static_cast<void*>(urlParser.get()));

        char *spec = argv[1];
        uint32_t schemePos, authPos, pathPos;
        int32_t schemeLen, authLen, pathLen;

        urlParser->ParseURL(spec, -1,
                            &schemePos, &schemeLen,
                            &authPos, &authLen,
                            &pathPos, &pathLen);

        if (schemeLen != -1)
            PRINT_SUBFIELD(spec, scheme);
        if (authLen != -1)
            parse_authority(urlParser, spec + authPos, authLen);
        if (pathLen != -1)
            parse_path(urlParser, spec + pathPos, pathLen);
    }
    else
        printf("no urlParser\n");
    return 0;
}


text:
using System;
using System.Xml;
using System.Text;
using OpenSource.UPnP;
using System.Reflection;
using System.Collections;
using OpenSource.Utilities;
using System.Runtime.Serialization;

namespace OpenSource.UPnP.AV.CdsMetadata
{
	/// <summary>
	/// Class can represent any ContentDirectory approved
	/// upnp or dublin-core metadata elements that are
	/// simple integers without any attributes.
	/// </summary>
	[Serializable()]
	public sealed class PropertyStorageMedium : ICdsElement, IToXmlData, IDeserializationCallback
	{
		/// <summary>
		/// Returns same value as StringValue
		/// </summary>
		/// <returns></returns>
		public override string ToString() { return this.StringValue; }

		/// <summary>
		/// Returns an empty list.
		/// </summary>
		/// <returns></returns>
		public static IList GetPossibleAttributes()
		{
			return new object[0];
		}

		/// <summary>
		/// Returns an empty list.
		/// </summary>
		/// <returns></returns>
		public IList PossibleAttributes
		{
			get
			{
				return GetPossibleAttributes();
			}
		}

		/// <summary>
		/// Returns an empty list.
		/// </summary>
		/// <returns></returns>
		public IList ValidAttributes
		{
			get
			{
				return GetPossibleAttributes();
			}
		}

		/// <summary>
		/// No attributes, so always returns null
		/// </summary>
		/// <param name="attribute"></param>
		/// <returns></returns>
		public IComparable ExtractAttribute(string attribute) { return null; }

		/// <summary>
		/// Casts the EnumWriteStatus value to an int so that it is comparable.
		/// </summary>
		public IComparable ComparableValue { get { return (int) m_value; } }

		/// <summary>
		/// Returns the underlying enumeration value.
		/// </summary>
		public object Value { get { return m_value; } }

		/// <summary>
		/// Returns the enumeration value in its string form.
		/// </summary>
		public string StringValue { get { return m_value.ToString(); } }

		/// <summary>
		/// Prints the XML representation of the metadata element.
		/// <para>
		/// Implementation calls the <see cref="ToXmlData.ToXml"/>
		/// method for its implementation.
		/// </para>
		/// </summary>
		/// <param name="formatter">
		/// A <see cref="ToXmlFormatter"/> object that
		/// specifies method implementations for printing
		/// media objects.
		/// </param>
		/// <param name="data">
		/// This object should be a <see cref="ToXmlData"/>
		/// object that contains additional instructions used
		/// by the "formatter" argument.
		/// </param>
		/// <param name="xmlWriter">
		/// The <see cref="XmlTextWriter"/> object that
		/// will format the representation in an XML
		/// valid way.
		/// </param>
		/// <exception cref="InvalidCastException">
		/// Thrown if the "data" argument is not a <see cref="ToXmlData"/> object.
		/// </exception>
		public void ToXml (ToXmlFormatter formatter, object data, XmlTextWriter xmlWriter)
		{
			ToXmlData.ToXml(this, formatter, (ToXmlData) data, xmlWriter);
		}

		/// <summary>
		/// Instructs the "xmlWriter" argument to start the metadata element.
		/// </summary>
		/// <param name="formatter">
		/// A <see cref="ToXmlFormatter"/> object that
		/// specifies method implementations for printing
		/// media objects and metadata.
		/// </param>
		/// <param name="data">
		/// This object should be a <see cref="ToXmlData"/>
		/// object that contains additional instructions used
		/// by the "formatter" argument.
		/// </param>
		/// <param name="xmlWriter">
		/// The <see cref="XmlTextWriter"/> object that
		/// will format the representation in an XML
		/// valid way.
		/// </param>
		public void StartElement(ToXmlFormatter formatter, object data, XmlTextWriter xmlWriter)
		{
			xmlWriter.WriteStartElement(this.ns_tag);
		}

		/// <summary>
		/// Instructs the "xmlWriter" argument to write the value of
		/// the metadata element.
		/// </summary>
		/// <param name="formatter">
		/// A <see cref="ToXmlFormatter"/> object that
		/// specifies method implementations for printing
		/// media objects and metadata.
		/// </param>
		/// <param name="data">
		/// This object should be a <see cref="ToXmlData"/>
		/// object that contains additional instructions used
		/// by the "formatter" argument.
		/// </param>
		/// <param name="xmlWriter">
		/// The <see cref="XmlTextWriter"/> object that
		/// will format the representation in an XML
		/// valid way.
		/// </param>
		public void WriteValue(ToXmlFormatter formatter, object data, XmlTextWriter xmlWriter)
		{
			xmlWriter.WriteString(this.StringValue);
		}

		/// <summary>
		/// Instructs the "xmlWriter" argument to close the metadata element.
		/// </summary>
		/// <param name="formatter">
		/// A <see cref="ToXmlFormatter"/> object that
		/// specifies method implementations for printing
		/// media objects and metadata.
		/// </param>
		/// <param name="data">
		/// This object should be a <see cref="ToXmlData"/>
		/// object that contains additional instructions used
		/// by the "formatter" argument.
		/// </param>
		/// <param name="xmlWriter">
		/// The <see cref="XmlTextWriter"/> object that
		/// will format the representation in an XML
		/// valid way.
		/// </param>
		public void EndElement(ToXmlFormatter formatter, object data, XmlTextWriter xmlWriter)
		{
			xmlWriter.WriteEndElement();
		}

		/// <summary>
		/// Empty - this element has no child xml elements.
		/// </summary>
		/// <param name="formatter">
		/// A <see cref="ToXmlFormatter"/> object that
		/// specifies method implementations for printing
		/// media objects and metadata.
		/// </param>
		/// <param name="data">
		/// This object should be a <see cref="ToXmlData"/>
		/// object that contains additional instructions used
		/// by the "formatter" argument.
		/// </param>
		/// <param name="xmlWriter">
		/// The <see cref="XmlTextWriter"/> object that
		/// will format the representation in an XML
		/// valid way.
		/// </param>
		public void WriteInnerXml(ToXmlFormatter formatter, object data, XmlTextWriter xmlWriter)
		{
		}

		/// <summary>
		/// Attempts to case compareToThis as an EnumWriteStatus
		/// to do the comparison. If the cast
		/// fails, then it compares the current
		/// value against EnumWriteStatus.MinValue.
		/// </summary>
		/// <param name="compareToThis"></param>
		/// <returns></returns>
		public int CompareTo (object compareToThis)
		{
			System.Type type = compareToThis.GetType();

			EnumWriteStatus compareTo = (EnumWriteStatus) Enum.Parse(typeof(EnumWriteStatus), compareToThis.ToString(), true);

			int o1 = (int) this.m_value;
			int o2 = (int) compareTo;

			return o1.CompareTo(o2);
		}

		/// <summary>
		/// Extracts the StorageMedium.Enum value (in string form) from the element and uses
		/// the InnerText as the value.
		/// </summary>
		/// <param name="element"></param>
		public PropertyStorageMedium(XmlElement element)
		{
			this.m_value = (StorageMediums.Enum) Enum.Parse(typeof(StorageMediums.Enum), element.InnerText, true);
			this.ns_tag = (string) CdsMetadataCaches.Didl.CacheThis(element.Name);
		}

		/// <summary>
		/// Instantiates a new property that can represent an xml element with
		/// the StorageMedium.Enum enumeration as its value.
		/// </summary>
		/// <param name="namespace_tag">property obtained from Tags[CommonPropertyNames.value]</param>
		/// <param name="val"></param>
		public PropertyStorageMedium (string namespace_tag, StorageMediums.Enum val)
		{
			this.ns_tag = (string) CdsMetadataCaches.Didl.CacheThis(namespace_tag);
			this.m_value = val;
		}

		/// <summary>
		/// Assume the name has been read.
		/// </summary>
		/// <param name="reader"></param>
		public PropertyStorageMedium(XmlReader reader)
		{

			this.m_value = (StorageMediums.Enum) Enum.Parse(typeof(StorageMediums.Enum), reader.Value, true);
			this.ns_tag = (string) CdsMetadataCaches.Didl.CacheThis(reader.Name);
		}

		/// <summary>
		/// Underlying enumeration value.
		/// </summary>
		public StorageMediums.Enum _Value { get { return this.m_value; } }
		internal StorageMediums.Enum m_value;

		/// <summary>
		/// the namespace and element name to represent
		/// </summary>
		private string ns_tag;

		public void OnDeserialization(object sender)
		{
			this.ns_tag = (string) CdsMetadataCaches.Didl.CacheThis(this.ns_tag);
		}
	}
}


text:
package de.japkit.model;

import javax.lang.model.element.Element;
import javax.lang.model.element.ElementKind;
import javax.lang.model.element.Name;
import javax.lang.model.element.TypeElement;

public class GenEnum extends GenTypeElement implements TypeElement {
	@Override
	public ElementKind getKind() {
		return ElementKind.ENUM;
	}

	public GenEnum(final String name, final String packageName) {
		super(name, packageName);
	}

	public GenEnum(final String name, final Element enclosingElement) {
		super(name, enclosingElement);
	}

	public GenEnum(final String name) {
		super(name);
	}

	public GenEnum(final Name name) {
		super(name);
	}

	public GenEnum() {
		super();
	}
}


text:
'use strict';

/**
 * Used to keep the data set centered on the current date.
 * It is useful for ensuring that demos always have nice looking (and up to date) data sets
 * This script should be scheduled with a cron job to run every night.
 */

var conf = require('./../conf/index');
var logger = conf.logger;
var client = conf.elasticsearch.newClient();

// date fields to shift
var dateFields = [
  'visitDate',
  'symptomOnsetDate',
  'submissionDate'
];

function shiftDates (callback) {
  client.get({
    index: 'date-shift',
    type: 'date-shift',
    id: '1'
  }, function (err, hit) {
    if (err) {
      return callback(err);
    }

    var version = hit._version; // in case this script gets run in parallel

    var dateToBecomeToday = hit._source.date;
    if (!dateToBecomeToday) {
      return callback(new Error('No date set in /date-shift/date-shift/1'));
    }

    dateToBecomeToday = new Date(dateToBecomeToday);

    var count = 0;
    var totalResults = 0;
    var now = Date.now();

    // TODO backup so if something goes wrong we can roll back

    client.search({
      index: 'outpatient_visit',
      scroll: '30s',
      size: 1000
    }, function getMoreUntilDone (err, scrollResponse) {
      if (err) {
        return callback(err);
      }

      totalResults = scrollResponse.hits.total;

      var bulkBody = [];
      scrollResponse.hits.hits.forEach(function (hit) {
        count++;
        if (!hit._source.visitDate) {
          return;
        }

        var doc = dateFields.reduce(function (doc, field) {
          if (hit._source[field]) { // not every document has every date field
            var oldDate = new Date(hit._source[field]);
            doc[field] = new Date(now - (dateToBecomeToday.getTime() - oldDate.getTime()));

            if (doc[field].getTime() > now) {
              logger.warn('Record will be shifted into the future: %j', hit._source);
            }
          }
          return doc;
        }, {});

        if (Object.keys(doc).length > 0) {
          bulkBody.push({
            update: {
              _index: hit._index,
              _type: hit._type,
              _id: hit._id
            }
          });
          bulkBody.push({
            doc: doc
          });
        }
      });

      var finish = function () {
        // make sure we store what date we shifted to so future shifts don't get messed up
        client.index({
          index: 'date-shift',
          type: 'date-shift',
          id: '1',
          version: version,
          body: {
            date: now
          }
        }, function (err) {
          if (err) {
            return callback(err);
          }

          callback(null, count);
        });
      };

      if (bulkBody.length === 0) {
        // elasticsearch throws a cryptic exception if we try to bulk insert no records
        return finish();
      }

      client.bulk({
        body: bulkBody
      }, function (err) {
        if (err) {
          return callback(err);
        }

        if (count !== totalResults) {
          /*jshint camelcase:false */
          client.scroll({
            scrollId: scrollResponse._scroll_id,
            scroll: '30s',
            size: 1000
          }, getMoreUntilDone);
        } else {
          // we're done
          finish();
        }
      });
    });
  });
}

if (!module.parent) {
  shiftDates(function (err, count) {
    client.close();

    if (err) {
      return conf.logger.error(err);
    }

    logger.info('Date shifted %d records', count);
  });
}

module.exports = function (callback) {
  callback = callback || function () {};

  shiftDates(function () {
    client.close();
    callback.apply(this, arguments);
  });
};


text:
package net.liftweb
package mongodb
package record
package field

import scala.xml.NodeSeq
import net.liftweb.common.{Box, Empty, Failure, Full}
import net.liftweb.http.js.JE.{JsNull, JsRaw}
import net.liftweb.json._
import net.liftweb.record.{Field, FieldHelpers, MandatoryTypedField, OptionalTypedField}
import net.liftweb.util.Helpers.tryo

import org.bson._
import org.bson.codecs.{BsonDocumentCodec, BsonTypeCodecMap, Codec, DecoderContext, EncoderContext}
import org.bson.codecs.configuration.CodecRegistry

import com.mongodb.{BasicDBList, DBObject}

import scala.collection.JavaConverters._

abstract class JsonObjectTypedField[OwnerType <: BsonRecord[OwnerType], JObjectType <: JsonObject[JObjectType]]
(val owner: OwnerType, valueMeta: JsonObjectMeta[JObjectType])
  extends Field[JObjectType, OwnerType]
  with MongoFieldFlavor[JObjectType]
  with BsonDocumentJObjectField[JObjectType]
{

  override implicit val formats = owner.meta.formats

  /**
   * Convert the field value to an XHTML representation
   */
  def toForm: Box[NodeSeq] = Empty // FIXME

  /** Encode the field value into a JValue */
  def asJValue: JValue = valueBox.map(_.asJObject) openOr (JNothing: JValue)

  /**
   * Returns the field's value as a valid JavaScript expression
   */
  override def asJs = asJValue match {
    case JNothing => JsNull
    case jv => JsRaw(compactRender(jv))
  }

  /*
  * Decode the JValue and set the field to the decoded value.
  * Returns Empty or Failure if the value could not be set
  */
  def setFromJValue(jvalue: JValue): Box[JObjectType] = jvalue match {
    case JNothing | JNull if optional_? => setBox(Empty)
    case o: JObject => setBox(tryo(valueMeta.create(o)))
    case other => setBox(FieldHelpers.expectedA("JObject", other))
  }

  def setFromAny(in: Any): Box[JObjectType] = in match {
    case dbo: DBObject => setFromDBObject(dbo)
    case value: JsonObject[_] => setBox(Full(value.asInstanceOf[JObjectType]))
    case Some(value: JsonObject[_]) => setBox(Full(value.asInstanceOf[JObjectType]))
    case Full(value: JsonObject[_]) => setBox(Full(value.asInstanceOf[JObjectType]))
    case (value: JsonObject[_]) :: _ => setBox(Full(value.asInstanceOf[JObjectType]))
    case s: String => setFromString(s)
    case Some(s: String) => setFromString(s)
    case Full(s: String) => setFromString(s)
    case null|None|Empty => setBox(defaultValueBox)
    case f: Failure => setBox(f)
    case o => setFromString(o.toString)
  }

  // parse String into a JObject
  def setFromString(in: String): Box[JObjectType] = tryo(JsonParser.parse(in)) match {
    case Full(jv: JValue) => setFromJValue(jv)
    case f: Failure => setBox(f)
    case _ => setBox(Failure(s"Error parsing String into a JValue: $in"))
  }

  /*
  * Convert this field's value into a DBObject so it can be stored in Mongo.
  */
  @deprecated("This was replaced with the functions from 'BsonableField'.", "3.4.3")
  def asDBObject: DBObject = JObjectParser.parse(asJValue.asInstanceOf[JObject])

  // set this field's value using a DBObject returned from Mongo.
  @deprecated("This was replaced with the functions from 'BsonableField'.", "3.4.3")
  def setFromDBObject(dbo: DBObject): Box[JObjectType] =
    setFromJValue(JObjectParser.serialize(dbo).asInstanceOf[JObject])
}

abstract class JsonObjectField[OwnerType <: BsonRecord[OwnerType], JObjectType <: JsonObject[JObjectType]]
(@deprecatedName('rec) owner: OwnerType, valueMeta: JsonObjectMeta[JObjectType])
  extends JsonObjectTypedField(owner, valueMeta) with MandatoryTypedField[JObjectType] {

  def this(owner: OwnerType, valueMeta: JsonObjectMeta[JObjectType], value: JObjectType) = {
    this(owner, valueMeta)
    setBox(Full(value))
  }
}

class OptionalJsonObjectField[OwnerType <: BsonRecord[OwnerType], JObjectType <: JsonObject[JObjectType]]
(owner: OwnerType, valueMeta: JsonObjectMeta[JObjectType])
  extends JsonObjectTypedField(owner, valueMeta) with OptionalTypedField[JObjectType] {

  def this(owner: OwnerType, valueMeta: JsonObjectMeta[JObjectType], valueBox: Box[JObjectType]) = {
    this(owner, valueMeta)
    setBox(valueBox)
  }
}

/*
* List of JsonObject case classes
*/
class JsonObjectListField[OwnerType <: BsonRecord[OwnerType], JObjectType <: JsonObject[JObjectType]]
(owner: OwnerType, valueMeta: JsonObjectMeta[JObjectType])(implicit mf: Manifest[JObjectType])
  extends MongoListField[OwnerType, JObjectType](owner: OwnerType)
{

  @deprecated("This was replaced with the functions from 'BsonableField'.", "3.4.3")
  override def asDBObject: DBObject = {
    val dbl = new BasicDBList
    value.foreach { v => dbl.add(JObjectParser.parse(v.asJObject()(owner.meta.formats))(owner.meta.formats)) }
    dbl
  }

  @deprecated("This was replaced with the functions from 'BsonableField'.", "3.4.3")
  override def setFromDBObject(dbo: DBObject): Box[List[JObjectType]] =
    setBox(Full(dbo.keySet.asScala.toList.map { k =>
      val v = dbo.get(k)
      valueMeta.create(JObjectParser.serialize(v)(owner.meta.formats).asInstanceOf[JObject])(owner.meta.formats)
    }))

  override def asJValue: JValue = JArray(value.map(_.asJObject()(owner.meta.formats)))

  /**
   * Returns the field's value as a valid JavaScript expression
   */
  override def asJs = asJValue match {
    case JNothing => JsNull
    case jv => JsRaw(compactRender(jv))
  }

  override def setFromJValue(jvalue: JValue) = jvalue match {
    case JNothing | JNull if optional_? => setBox(Empty)
    case JArray(arr) => setBox(Full(arr.map { jv =>
      valueMeta.create(jv.asInstanceOf[JObject])(owner.meta.formats)
    }))
    case other => setBox(FieldHelpers.expectedA("JArray", other))
  }

  @deprecated("This was replaced with the functions from 'BsonableField'.", "3.4.3")
  override def setFromDocumentList(list: java.util.List[Document]): Box[MyType] = {
    val objs = list.asScala.map { JObjectParser.serialize }
    setFromJValue(JArray(objs.toList))
  }

  override def setFromBsonReader(reader: BsonReader, context: DecoderContext, registry: CodecRegistry, bsonTypeCodecMap: BsonTypeCodecMap): Box[List[JObjectType]] = {
    reader.getCurrentBsonType match {
      case BsonType.ARRAY =>
        setFromJValue(JArray(readArrayToBsonDocument(reader, context, registry).map { BsonParser.serialize _ }))
      case BsonType.NULL =>
        reader.readNull()
        Empty
      case bsonType =>
        Failure(s"Invalid BsonType for field ${name}: ${bsonType}")
    }
  }

  override def writeToBsonWriter(writer: BsonWriter, context: EncoderContext, registry: CodecRegistry, bsonTypeCodecMap: BsonTypeCodecMap): Unit = {
    writer.writeName(name)
    writer.writeStartArray()

    asJValue match {
      case JArray(list) =>
        list.foreach { v =>
          val codec = (new BsonDocumentCodec(registry)).asInstanceOf[Codec[Any]]
          context.encodeWithChildContext(codec, writer, BsonParser.parse(v.asInstanceOf[JObject]))
        }
      case _ =>
    }

    writer.writeEndArray()
  }
}

@deprecated("Use the more consistently named 'JsonObjectListField' instead. This class will be removed in Lift 4.", "3.2")
class MongoJsonObjectListField[OwnerType <: BsonRecord[OwnerType], JObjectType <: JsonObject[JObjectType]]
(@deprecatedName('rec) owner: OwnerType, valueMeta: JsonObjectMeta[JObjectType])(implicit mf: Manifest[JObjectType]) extends JsonObjectListField(owner, valueMeta)


text:
<?php

class UpgradeVersionShell extends AppShell {
  var $uses = array('Meta',
                    'Address',
                    'ApiUser',
                    'CmpEnrollmentConfiguration',
                    'Co',
                    'CoEnrollmentAttributeDefault',
                    'CoEnrollmentFlow',
                    'CoExtendedType',
                    'CoGroup',
                    'CoIdentifierAssignment',
                    'CoJob',
                    'GrouperProvisioner.CoGrouperProvisionerTarget',
                    'HttpServer',
                    'Identifier',
                    'SshKeyAuthenticator.SshKey',
                    'SshKeyAuthenticator.SshKeyAuthenticator');

  // A list of known versions, must be semantic versioning compliant. The value
  // is a "blocker" if it is a version that prevents an upgrade from happening.
  // For example, if a user attempts to upgrade from 1.0.0 to 1.2.0, and 1.1.0
  // is flagged as a blocker, then the upgrade must be performed in two steps
  // (1.0.0 -> 1.1.0, then 1.1.0 -> 1.2.0). Without the blocker, an upgrade from
  // 1.0.0 to 1.2.0 is permitted.

  // A typical scenario for blocking is when a pre### step must run after an
  // earlier version's post### step. Because we don't (yet) have the capability
  // to run database updates on a per-release basis, we run all relevant pre
  // steps, then the database update, then all relevant post update steps.
  // So if (eg) the admin is upgrading from 1.0.0 past 1.1.0 to 1.2.0 and there
  // are no blockers, the order of operations is 1.1.0-pre, 1.2.0-pre, database,
  // 1.1.0-post, 1.2.0-post.

  // Make sure to keep this list in order so we can walk the array rather than compare version strings.
  // You must specify the 'block' parameter. If you flag a version as blocking, be sure to document why.
  protected $versions = array(
    "0.9.3" => array('block' => false),
    // 0.9.4 blocks because it's the first version to use UpgradeVersionShell.
    // Also, see notes in Address::_ug094().
    "0.9.4" => array('block' => true, /* 'pre' => 'pre094', */ 'post' => 'post094'),
    // 1.0.0 blocks because of the introduction of /local
    "1.0.0" => array('block' => true, 'post' => 'post100'),
    "1.0.1" => array('block' => false),
    "1.0.2" => array('block' => false),
    "1.0.3" => array('block' => false),
    "1.0.4" => array('block' => false),
    "1.0.5" => array('block' => false, 'post' => 'post105'),
    "1.0.6" => array('block' => false),
    "1.0.7" => array('block' => false),
    "2.0.0" => array('block' => false, 'post' => 'post110'),
    "2.0.1" => array('block' => false),
    "2.0.2" => array('block' => false),
    "2.0.3" => array('block' => false),
    "3.0.0" => array('block' => false),
    "3.1.0" => array('block' => false, 'post' => 'post310'),
    "3.1.1" => array('block' => false),
    "3.2.0" => array('block' => false),
    "3.2.1" => array('block' => false),
    "3.2.2" => array('block' => false),
    "3.2.3" => array('block' => false),
    "3.2.4" => array('block' => false),
    "3.2.5" => array('block' => false),
    "3.3.0" => array('block' => false, 'pre' => 'pre330', 'post' => 'post330'),
    "3.3.1" => array('block' => false),
    "3.3.2" => array('block' => false)
  );

  public function getOptionParser() {
    $parser = parent::getOptionParser();

    $parser->addArgument(
      'version',
      array(
        'help'     => _txt('sh.ug.arg.version'),
        'required' => false
      )
    )->addOption(
      'forcecurrent',
      array(
        'short' => 'f',
        'help' => _txt('sh.ug.arg.forcecurrent'),
        'boolean' => false,
        'default' => false
      )
    )->addOption(
      'skipdatabase',
      array(
        'short' => 'D',
        'help' => _txt('sh.ug.arg.skipdatabase'),
        'boolean' => true,
        'default' => false
      )
    )->addOption(
      'skipvalidation',
      array(
        'short' => 'X',
        'help' => _txt('sh.ug.arg.skipvalidation'),
        'boolean' => true,
        'default' => false
      )
    )->description(_txt('sh.ug.arg.desc'));

    return $parser;
  }

  /**
   * Validate the requested from and to versions.
   *
   * @since  COmanage Registry v0.9.4
   * @param  String $from "From" version (current database)
   * @param  String $to "To" version (current codebase)
   * @return Boolean True if the requested range is valid
   * @throws InvalidArgumentException
   */

  protected function validateVersions($from, $to) {
    // First make sure these are valid versions

    if(!array_key_exists($from, $this->versions)) {
      throw new InvalidArgumentException(_txt('er.ug.version', array($from)));
    }

    if(!array_key_exists($to, $this->versions)) {
      throw new InvalidArgumentException(_txt('er.ug.version', array($to)));
    }

    // If $from and $to are the same, nothing to do.

    if($from == $to) {
      throw new InvalidArgumentException(_txt('er.ug.same'));
    }

    // Walk through the version array and check our version path

    $fromFound = false;

    foreach($this->versions as $version => $params) {
      $blocks = $params['block'];

      if($version == $from) {
        $fromFound = true;
      } elseif($version == $to) {
        if(!$fromFound) {
          // Can't downgrade ($from must preceed $to)
          throw new InvalidArgumentException(_txt('er.ug.order'));
        } else {
          // We're good to go
          break;
        }
      } else {
        if($fromFound && $blocks) {
          // We can't pass a blocker version
          throw new InvalidArgumentException(_txt('er.ug.blocked', array($version)));
        }
      }
    }

    return true;
  }

  function main() {
    // Merge plugin texts, in case any plugins end up being called
    _bootstrap_plugin_txt();

    // Pull current (PHP code) version
    $targetVersion = null;

    if(!empty($this->args[0])) {
      // Use requested target version
      $targetVersion = $this->args[0];
    } else {
      // Read the current release from the VERSION file
      $versionFile = APP . DS . 'Config' . DS . "VERSION";

      $targetVersion = rtrim(file_get_contents($versionFile));
    }

    // Pull current database version

    $currentVersion = $this->params['forcecurrent'];

    if(!$currentVersion) {
      $currentVersion = $this->Meta->getUpgradeVersion();
    }

    $this->out(_txt('sh.ug.current', array($currentVersion)));
    $this->out(_txt('sh.ug.target', array($targetVersion)));

    $skipValidation = $this->params['skipvalidation'];

    if(!$skipValidation) {
      // Validate the version path
      try {
        $this->validateVersions($currentVersion, $targetVersion);
      }
      catch(Exception $e) {
        $this->out($e->getMessage());
        $this->out(_txt('er.ug.fail'));
        exit;
      }
    }

    // Run appropriate pre-database steps

    $fromFound = false;

    foreach($this->versions as $version => $params) {
      if($version == $currentVersion) {
        // Note we don't actually want to run the steps for $currentVersion
        $fromFound = true;
        continue;
      }

      if(!$fromFound) {
        // We haven't reached the from version yet
        continue;
      }

      if(isset($params['pre'])) {
        $fn = $params['pre'];

        $this->out(_txt('sh.ug.pre', array($fn)));
        $this->$fn();
      }

      if($version == $targetVersion) {
        // We're done
        break;
      }
    }

    $skipDatabase = $this->params['skipdatabase'];

    if(!$skipDatabase) {
      // Call database shell
      $this->dispatchShell('database');
    }

    // Run appropriate post-database steps

    $fromFound = false;

    foreach($this->versions as $version => $params) {
      if($version == $currentVersion) {
        // Note we don't actually want to run the steps for $currentVersion
        $fromFound = true;
        continue;
      }

      if(!$fromFound) {
        // We haven't reached the from version yet
        continue;
      }

      if(isset($params['post'])) {
        $fn = $params['post'];

        $this->out(_txt('sh.ug.post', array($fn)));
        $this->$fn();
      }

      if($version == $targetVersion) {
        // We're done
        break;
      }
    }

    // Now that we're done, update the current version
    $this->Meta->setUpgradeVersion($targetVersion,
                                   // If we're upgrading from 0.9.3, we need to
                                   // create the row in the database
                                   $currentVersion == '0.9.3');
  }

  // Version specific pre/post functions

  public function post094() {
    // 0.9.4 consolidates cm_addresses:line1 and line2 into street (CO-539)
    $this->out(_txt('sh.ug.094.address'));
    $this->Address->_ug094();
  }

  public function post100() {
    // 1.0.0 migrates org identity pooling to setup (CO-1160), so we check to make
    // sure the default CMP enrollment configuration is set.
    $this->out(_txt('sh.ug.100.cmpdefault'));

    if(!$this->CmpEnrollmentConfiguration->findDefault()) {
      // If no default entry is found, create one. This will force org identities
      // to be unpooled (which is the default).
      $this->CmpEnrollmentConfiguration->createDefault();
    }
  }

  public function post105() {
    // 1.0.5 fixes a bug (CO-1287) that created superfluous attribute default entries.
    // This will clean them out.
    // 1.0.0 migrates org identity pooling to setup (CO-1160), so we check to make
    // sure the default CMP enrollment configuration is set.
    $this->out(_txt('sh.ug.105.attrdefault'));
    $this->CoEnrollmentAttributeDefault->_ug105();
  }

  public function post110() {
    // 2.0.0 was originally going to be 1.1.0. Rather than rename all this internal
    // stuff and risk breaking something, we'll leave the 1.1.0 references in place.

    // 2.0.0 replaces CoEnrollmentFlow::verify_email with email_verification_mode.
    $this->out(_txt('sh.ug.110.ef'));
    $this->CoEnrollmentFlow->_ug110();

    // 2.0.0 deprecates using a database view as the source of subjectes for Grouper.
    // Mark existing GrouperProvisioner targets as using the legacy view.
    $this->out(_txt('sh.grouperprovisioner.ug.110.gp'));
    $this->CoGrouperProvisionerTarget->_ug110();

    // 2.0.0 changes how automatic groups are populated.
    $this->out(_txt('sh.ug.110.gr'));

    // Start by pulling the list of COs and its COUs.

    $args = array();
    // Because CO is not Changelog but COU is, we have to pull COUs separately
    $args['contain'] = false;

    $cos = $this->Co->find('all', $args);

    // We update inactive COs as well, in case they become active again
    foreach($cos as $co) {
      $this->out('- ' . $co['Co']['name']);

      $this->CoGroup->_ug110($co['Co']['id'], $co['Co']['name']);

      $args = array();
      $args['conditions']['Cou.co_id'] = $co['Co']['id'];
      $args['contain'] = false;

      $cous = $this->Co->Cou->find('all', $args);

      foreach($cous as $cou) {
        $this->out('-- ' . $cou['Cou']['name']);

        $this->CoGroup->_ug110($co['Co']['id'],  $co['Co']['name'], $cou['Cou']['id'], $cou['Cou']['name']);
      }
    }

    // 2.0.0 uses SuspendableStatusEnum for Identifier::status
    $this->out(_txt('sh.ug.110.is'));
    $this->Identifier->_ug110();
  }

  public function post310() {
    // 3.1.0 adds the Url MVPA, so we instantiate the default types across all COs.
    $this->out(_txt('sh.ug.310.url'));

    $args = array();
    $args['contain'] = false;

    $cos = $this->Co->find('all', $args);

    // We update inactive COs as well, in case they become active again
    foreach($cos as $co) {
      $this->out('- ' . $co['Co']['name']);

      $this->CoExtendedType->addDefault($co['Co']['id'], 'Url.type');
    }
  }

  public function post330() {
    // 3.3.0 moves SSH key management into an authenticator plugin.
    $this->out(_txt('sh.ug.330.ssh'));

    $args = array();
    $args['contain'] = false;

    $cos = $this->Co->find('all', $args);

    // We update inactive COs as well, in case they become active again
    foreach($cos as $co) {
      $this->out('- ' . $co['Co']['name']);

      $this->SshKeyAuthenticator->_ug330($co['Co']['id']);
      $this->CoExtendedType->addDefault($co['Co']['id'], 'CoDepartment.type');
    }

    // The users view is no longer required.
    $prefix = "";
    $db = ConnectionManager::getDataSource('default');

    if(isset($db->config['prefix'])) {
      $prefix = $db->config['prefix'];
    }

    $this->out(_txt('sh.ug.330.users'));
    $this->Co->query("DROP VIEW " . $prefix . "users");

    // API Users is now more configurable. Set existing api users to be
    // active and fully privileged.
    $this->out(_txt('sh.ug.330.api'));
    $this->ApiUser->updateAll(
      array(
        'ApiUser.co_id' => 1,
        'ApiUser.privileged' => true,
        'ApiUser.status' => "'A'"  // Wacky updateAll syntax
      ),
      true
    );

    // Identifier Assignments now have a context, all existing Identifier
    // Assignments applied to CoPeople, and while we're here give all
    // everything Active status
    $this->out(_txt('sh.ug.330.ia'));
    $this->CoIdentifierAssignment->updateAll(
      array(
        'CoIdentifierAssignment.context' => "'CP'",  // Wacky updateAll syntax
        'CoIdentifierAssignment.status' => "'A'"
      ),
      true
    );

    // Resize SshKey type column
    $this->out(_txt('sh.ug.330.ssh.key'));
    $this->SshKey->_ug330();

    // Resize CoJob job_type column
    $this->out(_txt('sh.ug.330.cojob'));
    $this->CoJob->_ug330();

    // 3.3.0 adds multiple types of Password Sources, however the PasswordAuthenticator
    // plugin might not be enabled.

    if(CakePlugin::loaded('PasswordAuthenticator')) {
      // We can't add models to $uses since they may not exist
      $this->loadModel('PasswordAuthenticator.PasswordAuthenticator');

      // All existing Password Authenticators have a password_source of Self Select
      $this->out(_txt('sh.ug.340.password'));

      $this->PasswordAuthenticator->updateAll(
        array(
          'PasswordAuthenticator.password_source' => "'SL'"  // Wacky updateAll syntax
        ),
        array(
          'PasswordAuthenticator.password_source' => null
        )
      );
    }

    // HttpServers now have SSL configuration options, which should default to true
    $this->out(_txt('sh.ug.330.http'));
    $this->HttpServer->updateAll(
      array(
        'HttpServer.ssl_verify_host' => true,
        'HttpServer.ssl_verify_peer' => true
      ),
      true
    );
  }

  public function pre330() {
    // 3.3.0 renames CoEnrollmentFlow::return_url_whitelist to return_url_allowlist.
    // As a new technique, we'll manually rename the column before running the
    // database schema in order to maintain existing values without having to
    // copy attributes and then delete the old column. The downside of this approach
    // is we need to directly execute SQL.

    $prefix = "";
    $db = ConnectionManager::getDataSource('default');

    if(isset($db->config['prefix'])) {
      $prefix = $db->config['prefix'];
    }

    $this->out(_txt('sh.ug.330.rename'));
    // SQL: Alter table foo rename column bar to baz (should be cross plaform)
    $this->CoEnrollmentFlow->query("ALTER TABLE " . $prefix . "co_enrollment_flows RENAME COLUMN return_url_whitelist TO return_url_allowlist");
  }
}


text:
package binding

import (
	"encoding/xml"
	"io"
	"net/http"
	"reflect"
)

type xmlBinding struct{}

func (_ xmlBinding) Name() string {
	return "xml"
}

func (_ xmlBinding) Bind(dst interface{}, req *http.Request) error {
	v := reflect.ValueOf(dst)
	if v.Kind() != reflect.Ptr {
		return ErrorInputNotByReference
	}

	if req.Body != nil {
		defer req.Body.Close()
		err := xml.NewDecoder(req.Body).Decode(dst)
		if err != nil && err != io.EOF {
			return ErrorDeserialization
		}
	}
	return nil
}


text:
package org.lumongo.ui.client.charting;

import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.user.client.ui.FlowPanel;
import org.lumongo.ui.client.charting.options.ChartOptions;
import org.lumongo.ui.client.charting.options.CreditOptions;
import org.lumongo.ui.client.charting.options.ExportingOptions;
import org.lumongo.ui.client.charting.options.HighchartsOptions;

public class Highcharts extends FlowPanel {

	private static String exportUrl;

	public static void setExportUrl(String exportUrl) {
		Highcharts.exportUrl = exportUrl;
	}

	private String id;

	private HighchartsOptions highchartsOptions;

	private final Integer height;

	public Highcharts() {
		this(null);
	}

	public Highcharts(Integer height) {
		this.id = generateId();
		getElement().setId(id);
		this.height = height;
		this.addAttachHandler(event -> {
			if (event.isAttached()) {
				//Window.alert("attached");
				draw();
				//FIXME: Need to handle the size of the chart so multiple charts don't overwrite each other.
			}
		});
	}

	protected void setHighchartOptions(HighchartsOptions highchartsOptions) {
		this.highchartsOptions = highchartsOptions;
	}

	public HighchartsOptions getHighchartsOptions() {
		return highchartsOptions;
	}

	protected static final native String generateId() /*-{
        var CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
        //http://www.broofa.com/Tools/Math.uuid.js
        var chars = CHARS, uuid = new Array(36), rnd = 0, r;
        for (var i = 0; i < 36; i++) {
            if (i == 8 || i == 13 || i == 18 || i == 23) {
                uuid[i] = '-';
            } else if (i == 14) {
                uuid[i] = '4';
            } else {
                if (rnd <= 0x02) rnd = 0x2000000 + (Math.random() * 0x1000000) | 0;
                r = rnd & 0xf;
                rnd = rnd >> 4;
                uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
            }
        }
        return uuid.join('');
    }-*/;

	public void draw() {
		if (highchartsOptions.getCredits() == null) {
			highchartsOptions.setCredits(CreditOptions.create());
			highchartsOptions.getCredits().setEnabled(false);
		}

		if (highchartsOptions.getChart() == null) {
			highchartsOptions.setChart(ChartOptions.create());
		}
		highchartsOptions.getChart().setRenderTo(id);

		if (highchartsOptions.getExporting() == null) {
			highchartsOptions.setExporting(ExportingOptions.create());
		}
		highchartsOptions.getExporting().setURL(exportUrl);

		if (height != null) {
			highchartsOptions.getChart().setHeight(height);
		}

		try {
			executeDraw();
		}
		catch (Exception e) {
			GWT.log("Chart Failed to Build:: " + e.getMessage());
		}
	}

	protected void executeDraw() {
		draw(highchartsOptions);
	}

	private JavaScriptObject chart;

	protected final native void draw(HighchartsOptions highchartsOptions) /*-{
        this.@org.lumongo.ui.client.charting.Highcharts::chart = new $wnd.Highcharts.Chart(highchartsOptions);

    }-*/;

	public final native void reflow()/*-{
        this.@org.lumongo.ui.client.charting.Highcharts::chart.reflow();
    }-*/;

}


text:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<query>
		<arcgis>
			<type>point</type><!-- point, polyline, polygon -->
			<featureClass>http://services2.arcgis.com/tISIjAqoejGPFbAF/arcgis/rest/services/OSMTrigger_Amenity_Points/FeatureServer/0</featureClass>
			<login user="" password=""/>
			<app clientId="" clientSecret=""/>
		</arcgis>
		<trigger>
			<direction>enter</direction><!-- enter, leave -->
			<triggerID>{{OSMID}}</triggerID>
			<radius>200</radius><!-- Meters -->
			<tags>amenity,nutzung</tags>
			<notification>
				<text>{{name}}</text>
				<url>http://www.openstreetmap.org/node/{{OSMID}}</url>
				<data>{{data}}</data>
			</notification>
			<where></where>
		</trigger>
	</query>
	<query>
		<arcgis>
			<type>polygon</type><!-- point, polyline, polygon -->
			<featureClass>http://services2.arcgis.com/tISIjAqoejGPFbAF/arcgis/rest/services/OSMTrigger_Amenity_Polygons/FeatureServer/0</featureClass>
			<login user="" password=""/>
			<app clientId="" clientSecret=""/>
		</arcgis>
		<trigger>
			<direction>enter</direction><!-- enter, leave -->
			<triggerID>{{OSMID}}</triggerID>
			<radius>100</radius><!-- Meters -->
			<tags>amenity</tags>
			<notification>
				<text>{{amenity}}</text>
				<url>http://www.openstreetmap.org/way/{{OSMID}}</url>
				<data>{{data}}</data>
			</notification>
			<where></where>
		</trigger>
	</query>
	<query>
		<arcgis>
			<type>polyline</type><!-- point, polyline, polygon -->
			<featureClass>http://services2.arcgis.com/tISIjAqoejGPFbAF/arcgis/rest/services/OSMTrigger_Footway_Polylines/FeatureServer/0</featureClass>
			<login user="" password=""/>
			<app clientId="" clientSecret=""/>
		</arcgis>
		<trigger>
			<direction>enter</direction><!-- enter, leave -->
			<triggerID>{{OSMID}}</triggerID>
			<radius>100</radius><!-- Meters -->
			<tags>highway,footway</tags>
			<notification>
				<text>Fußweg {{name}}</text>
				<url>http://www.openstreetmap.org/way/{{OSMID}}</url>
				<data>{{data}}</data>
			</notification>
			<where></where>
		</trigger>
	</query>
	<query>
		<arcgis>
			<type>point</type><!-- point, polyline, polygon -->
			<featureClass>http://services2.arcgis.com/tISIjAqoejGPFbAF/ArcGIS/rest/services/OSMTrigger_Historic_Points/FeatureServer/0</featureClass>
			<login user="" password=""/>
			<app clientId="" clientSecret=""/>
		</arcgis>
		<trigger>
			<direction>leave</direction><!-- enter, leave -->
			<triggerID>{{OSMID}}</triggerID>
			<radius>50</radius><!-- Meters -->
			<tags>historic</tags>
			<notification>
				<text>Historische Stätte {{name}} verlassen</text>
				<url>http://www.openstreetmap.org/node/{{OSMID}}</url>
				<data>{{data}}</data>
			</notification>
			<where></where>
		</trigger>
	</query>
	<query>
		<arcgis>
			<type>point</type><!-- point, polyline, polygon -->
			<featureClass>http://services2.arcgis.com/tISIjAqoejGPFbAF/ArcGIS/rest/services/OSMTrigger_Busstop_Points/FeatureServer/0</featureClass>
			<login user="" password=""/>
			<app clientId="" clientSecret=""/>
		</arcgis>
		<trigger>
			<direction>enter</direction><!-- enter, leave -->
			<triggerID>{{OSMID}}</triggerID>
			<radius>100</radius><!-- Meters -->
			<tags>bus_stop,highway</tags>
			<notification>
				<text>Bushaltestelle {{name}} von {{route_ref}} {{line}}</text>
				<url>http://www.openstreetmap.org/node/{{OSMID}}</url>
				<data>{{data}}</data>
			</notification>
			<where></where>
		</trigger>
	</query>
</configuration>


text:
<?php
class SQLDataType
{
    const String = 0;
    const Number = 1;
    const Binary = 2;
}

class SQLTableColumn
{
    function __construct($columnName, $dataType)
    {
        $this->name     = $columnName;
        $this->dataType = $dataType;
    }

    public function getName()
    {
        return $this->name;
    }

    public function setName($columnName)
    {
        $this->name = $columnName;
    }

    public function getDataType()
    {
        return $this->dataType;
    }
} // End of SQLTableColumn

class SQLTable
{
    function __construct($tableName)
    {
        $this->name = $tableName;
        $this->columns = array();
    }

    public function getColumns()
    {
        return (array)$this->columns;
    } // End of getColumns

    public function setColumns($newColumns)
    {
        $this->columns = $newColumns;
    }

    public function addColumn($columnName)
    {
        $newColumn = new SQLTableColumn($columnName);
        array_push($this->columns, $newColumn);
    } // End of addColumn
} // End of SQLTable
?>