@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Config
@version 2014-11-12
@auth AWS SigV4
@endpoints 92
@hint download_for_search
@toc root(92)

@endpoint POST /
@required {ConfigurationAggregatorName: str, ResourceIdentifiers: [AggregateResourceIdentifier]}
@returns(200) {BaseConfigurationItems: [BaseConfigurationItem]?, UnprocessedResourceIdentifiers: [AggregateResourceIdentifier]?}

@endpoint POST /
@required {resourceKeys: [ResourceKey]}
@returns(200) {baseConfigurationItems: [BaseConfigurationItem]?, unprocessedResourceKeys: [ResourceKey]?}

@endpoint POST /
@required {AuthorizedAccountId: str, AuthorizedAwsRegion: str}

@endpoint POST /
@required {ConfigRuleName: str}

@endpoint POST /
@required {ConfigurationAggregatorName: str}

@endpoint POST /
@required {ConfigurationRecorderName: str}

@endpoint POST /
@required {ConformancePackName: str}

@endpoint POST /
@required {DeliveryChannelName: str}

@endpoint POST /
@required {ConfigRuleName: str}

@endpoint POST /
@required {OrganizationConfigRuleName: str}

@endpoint POST /
@required {OrganizationConformancePackName: str}

@endpoint POST /
@required {RequesterAccountId: str, RequesterAwsRegion: str}

@endpoint POST /
@required {ConfigRuleName: str}
@optional {ResourceType: str}

@endpoint POST /
@required {ConfigRuleName: str, ResourceKeys: [RemediationExceptionResourceKey]}
@returns(200) {FailedBatches: [FailedDeleteRemediationExceptionsBatch]?}

@endpoint POST /
@required {ResourceType: str, ResourceId: str}

@endpoint POST /
@required {RetentionConfigurationName: str}

@endpoint POST /
@required {QueryName: str}

@endpoint POST /
@required {deliveryChannelName: str}
@returns(200) {configSnapshotId: str?}

@endpoint POST /
@required {ConfigurationAggregatorName: str}
@optional {Filters: ConfigRuleComplianceFilters, Limit: int, NextToken: str}
@returns(200) {AggregateComplianceByConfigRules: [AggregateComplianceByConfigRule]?, NextToken: str?}

@endpoint POST /
@required {ConfigurationAggregatorName: str}
@optional {Filters: AggregateConformancePackComplianceFilters, Limit: int, NextToken: str}
@returns(200) {AggregateComplianceByConformancePacks: [AggregateComplianceByConformancePack]?, NextToken: str?}

@endpoint POST /
@optional {Limit: int, NextToken: str}
@returns(200) {AggregationAuthorizations: [AggregationAuthorization]?, NextToken: str?}

@endpoint POST /
@optional {ConfigRuleNames: [str], ComplianceTypes: [str], NextToken: str}
@returns(200) {ComplianceByConfigRules: [ComplianceByConfigRule]?, NextToken: str?}

@endpoint POST /
@optional {ResourceType: str, ResourceId: str, ComplianceTypes: [str], Limit: int, NextToken: str}
@returns(200) {ComplianceByResources: [ComplianceByResource]?, NextToken: str?}

@endpoint POST /
@optional {ConfigRuleNames: [str], NextToken: str, Limit: int}
@returns(200) {ConfigRulesEvaluationStatus: [ConfigRuleEvaluationStatus]?, NextToken: str?}

@endpoint POST /
@optional {ConfigRuleNames: [str], NextToken: str, Filters: DescribeConfigRulesFilters}
@returns(200) {ConfigRules: [ConfigRule]?, NextToken: str?}

@endpoint POST /
@required {ConfigurationAggregatorName: str}
@optional {UpdateStatus: [str], NextToken: str, Limit: int}
@returns(200) {AggregatedSourceStatusList: [AggregatedSourceStatus]?, NextToken: str?}

@endpoint POST /
@optional {ConfigurationAggregatorNames: [str], NextToken: str, Limit: int}
@returns(200) {ConfigurationAggregators: [ConfigurationAggregator]?, NextToken: str?}

@endpoint POST /
@optional {ConfigurationRecorderNames: [str]}
@returns(200) {ConfigurationRecordersStatus: [ConfigurationRecorderStatus]?}

@endpoint POST /
@optional {ConfigurationRecorderNames: [str]}
@returns(200) {ConfigurationRecorders: [ConfigurationRecorder]?}

@endpoint POST /
@required {ConformancePackName: str}
@optional {Filters: ConformancePackComplianceFilters, Limit: int, NextToken: str}
@returns(200) {ConformancePackName: str, ConformancePackRuleComplianceList: [ConformancePackRuleCompliance], NextToken: str?}

@endpoint POST /
@optional {ConformancePackNames: [str], Limit: int, NextToken: str}
@returns(200) {ConformancePackStatusDetails: [ConformancePackStatusDetail]?, NextToken: str?}

@endpoint POST /
@optional {ConformancePackNames: [str], Limit: int, NextToken: str}
@returns(200) {ConformancePackDetails: [ConformancePackDetail]?, NextToken: str?}

@endpoint POST /
@optional {DeliveryChannelNames: [str]}
@returns(200) {DeliveryChannelsStatus: [DeliveryChannelStatus]?}

@endpoint POST /
@optional {DeliveryChannelNames: [str]}
@returns(200) {DeliveryChannels: [DeliveryChannel]?}

@endpoint POST /
@optional {OrganizationConfigRuleNames: [str], Limit: int, NextToken: str}
@returns(200) {OrganizationConfigRuleStatuses: [OrganizationConfigRuleStatus]?, NextToken: str?}

@endpoint POST /
@optional {OrganizationConfigRuleNames: [str], Limit: int, NextToken: str}
@returns(200) {OrganizationConfigRules: [OrganizationConfigRule]?, NextToken: str?}

@endpoint POST /
@optional {OrganizationConformancePackNames: [str], Limit: int, NextToken: str}
@returns(200) {OrganizationConformancePackStatuses: [OrganizationConformancePackStatus]?, NextToken: str?}

@endpoint POST /
@optional {OrganizationConformancePackNames: [str], Limit: int, NextToken: str}
@returns(200) {OrganizationConformancePacks: [OrganizationConformancePack]?, NextToken: str?}

@endpoint POST /
@optional {Limit: int, NextToken: str}
@returns(200) {PendingAggregationRequests: [PendingAggregationRequest]?, NextToken: str?}

@endpoint POST /
@required {ConfigRuleNames: [str]}
@returns(200) {RemediationConfigurations: [RemediationConfiguration]?}

@endpoint POST /
@required {ConfigRuleName: str}
@optional {ResourceKeys: [RemediationExceptionResourceKey], Limit: int, NextToken: str}
@returns(200) {RemediationExceptions: [RemediationException]?, NextToken: str?}

@endpoint POST /
@required {ConfigRuleName: str}
@optional {ResourceKeys: [ResourceKey], Limit: int, NextToken: str}
@returns(200) {RemediationExecutionStatuses: [RemediationExecutionStatus]?, NextToken: str?}

@endpoint POST /
@optional {RetentionConfigurationNames: [str], NextToken: str}
@returns(200) {RetentionConfigurations: [RetentionConfiguration]?, NextToken: str?}

@endpoint POST /
@required {ConfigurationAggregatorName: str, ConfigRuleName: str, AccountId: str, AwsRegion: str}
@optional {ComplianceType: str, Limit: int, NextToken: str}
@returns(200) {AggregateEvaluationResults: [AggregateEvaluationResult]?, NextToken: str?}

@endpoint POST /
@required {ConfigurationAggregatorName: str}
@optional {Filters: ConfigRuleComplianceSummaryFilters, GroupByKey: str, Limit: int, NextToken: str}
@returns(200) {GroupByKey: str?, AggregateComplianceCounts: [AggregateComplianceCount]?, NextToken: str?}

@endpoint POST /
@required {ConfigurationAggregatorName: str}
@optional {Filters: AggregateConformancePackComplianceSummaryFilters, GroupByKey: str, Limit: int, NextToken: str}
@returns(200) {AggregateConformancePackComplianceSummaries: [AggregateConformancePackComplianceSummary]?, GroupByKey: str?, NextToken: str?}

@endpoint POST /
@required {ConfigurationAggregatorName: str}
@optional {Filters: ResourceCountFilters, GroupByKey: str, Limit: int, NextToken: str}
@returns(200) {TotalDiscoveredResources: int(i64), GroupByKey: str?, GroupedResourceCounts: [GroupedResourceCount]?, NextToken: str?}

@endpoint POST /
@required {ConfigurationAggregatorName: str, ResourceIdentifier: AggregateResourceIdentifier}
@returns(200) {ConfigurationItem: ConfigurationItem?{version: str?, accountId: str?, configurationItemCaptureTime: str(timestamp)?, configurationItemStatus: str?, configurationStateId: str?, configurationItemMD5Hash: str?, arn: str?, resourceType: str?, resourceId: str?, resourceName: str?, awsRegion: str?, availabilityZone: str?, resourceCreationTime: str(timestamp)?, tags: map<str,str>?, relatedEvents: [str]?, relationships: [Relationship]?, configuration: str?, supplementaryConfiguration: map<str,str>?, recordingFrequency: str?, configurationItemDeliveryTime: str(timestamp)?}}

@endpoint POST /
@required {ConfigRuleName: str}
@optional {ComplianceTypes: [str], Limit: int, NextToken: str}
@returns(200) {EvaluationResults: [EvaluationResult]?, NextToken: str?}

@endpoint POST /
@optional {ResourceType: str, ResourceId: str, ComplianceTypes: [str], NextToken: str, ResourceEvaluationId: str}
@returns(200) {EvaluationResults: [EvaluationResult]?, NextToken: str?}

@endpoint POST /
@returns(200) {ComplianceSummary: ComplianceSummary?{CompliantResourceCount: ComplianceContributorCount?{CappedCount: int?, CapExceeded: bool?}, NonCompliantResourceCount: ComplianceContributorCount?{CappedCount: int?, CapExceeded: bool?}, ComplianceSummaryTimestamp: str(timestamp)?}}

@endpoint POST /
@optional {ResourceTypes: [str]}
@returns(200) {ComplianceSummariesByResourceType: [ComplianceSummaryByResourceType]?}

@endpoint POST /
@required {ConformancePackName: str}
@optional {Filters: ConformancePackEvaluationFilters, Limit: int, NextToken: str}
@returns(200) {ConformancePackName: str, ConformancePackRuleEvaluationResults: [ConformancePackEvaluationResult]?, NextToken: str?}

@endpoint POST /
@required {ConformancePackNames: [str]}
@optional {Limit: int, NextToken: str}
@returns(200) {ConformancePackComplianceSummaryList: [ConformancePackComplianceSummary]?, NextToken: str?}

@endpoint POST /
@optional {ConfigRuleName: str}
@returns(200) {PolicyText: str?}

@endpoint POST /
@optional {resourceTypes: [str], limit: int, nextToken: str}
@returns(200) {totalDiscoveredResources: int(i64)?, resourceCounts: [ResourceCount]?, nextToken: str?}

@endpoint POST /
@required {OrganizationConfigRuleName: str}
@optional {Filters: StatusDetailFilters, Limit: int, NextToken: str}
@returns(200) {OrganizationConfigRuleDetailedStatus: [MemberAccountStatus]?, NextToken: str?}

@endpoint POST /
@required {OrganizationConformancePackName: str}
@optional {Filters: OrganizationResourceDetailedStatusFilters, Limit: int, NextToken: str}
@returns(200) {OrganizationConformancePackDetailedStatuses: [OrganizationConformancePackDetailedStatus]?, NextToken: str?}

@endpoint POST /
@required {OrganizationConfigRuleName: str}
@returns(200) {PolicyText: str?}

@endpoint POST /
@required {resourceType: str, resourceId: str}
@optional {laterTime: str(timestamp), earlierTime: str(timestamp), chronologicalOrder: str, limit: int, nextToken: str}
@returns(200) {configurationItems: [ConfigurationItem]?, nextToken: str?}

@endpoint POST /
@required {ResourceEvaluationId: str}
@returns(200) {ResourceEvaluationId: str?, EvaluationMode: str?, EvaluationStatus: EvaluationStatus?{Status: str, FailureReason: str?}, EvaluationStartTimestamp: str(timestamp)?, Compliance: str?, EvaluationContext: EvaluationContext?{EvaluationContextIdentifier: str?}, ResourceDetails: ResourceDetails?{ResourceId: str, ResourceType: str, ResourceConfiguration: str, ResourceConfigurationSchemaType: str?}}

@endpoint POST /
@required {QueryName: str}
@returns(200) {StoredQuery: StoredQuery?{QueryId: str?, QueryArn: str?, QueryName: str, Description: str?, Expression: str?}}

@endpoint POST /
@required {ConfigurationAggregatorName: str, ResourceType: str}
@optional {Filters: ResourceFilters, Limit: int, NextToken: str}
@returns(200) {ResourceIdentifiers: [AggregateResourceIdentifier]?, NextToken: str?}

@endpoint POST /
@optional {Filters: ConformancePackComplianceScoresFilters, SortOrder: str, SortBy: str, Limit: int, NextToken: str}
@returns(200) {NextToken: str?, ConformancePackComplianceScores: [ConformancePackComplianceScore]}

@endpoint POST /
@required {resourceType: str}
@optional {resourceIds: [str], resourceName: str, limit: int, includeDeletedResources: bool, nextToken: str}
@returns(200) {resourceIdentifiers: [ResourceIdentifier]?, nextToken: str?}

@endpoint POST /
@optional {Filters: ResourceEvaluationFilters, Limit: int, NextToken: str}
@returns(200) {ResourceEvaluations: [ResourceEvaluation]?, NextToken: str?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int}
@returns(200) {StoredQueryMetadata: [StoredQueryMetadata]?, NextToken: str?}

@endpoint POST /
@required {ResourceArn: str}
@optional {Limit: int, NextToken: str}
@returns(200) {Tags: [Tag]?, NextToken: str?}

@endpoint POST /
@required {AuthorizedAccountId: str, AuthorizedAwsRegion: str}
@optional {Tags: [Tag]}
@returns(200) {AggregationAuthorization: AggregationAuthorization?{AggregationAuthorizationArn: str?, AuthorizedAccountId: str?, AuthorizedAwsRegion: str?, CreationTime: str(timestamp)?}}

@endpoint POST /
@required {ConfigRule: ConfigRule}
@optional {Tags: [Tag]}

@endpoint POST /
@required {ConfigurationAggregatorName: str}
@optional {AccountAggregationSources: [AccountAggregationSource], OrganizationAggregationSource: OrganizationAggregationSource, Tags: [Tag]}
@returns(200) {ConfigurationAggregator: ConfigurationAggregator?{ConfigurationAggregatorName: str?, ConfigurationAggregatorArn: str?, AccountAggregationSources: [AccountAggregationSource]?, OrganizationAggregationSource: OrganizationAggregationSource?{RoleArn: str, AwsRegions: [str]?, AllAwsRegions: bool?}, CreationTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?, CreatedBy: str?}}

@endpoint POST /
@required {ConfigurationRecorder: ConfigurationRecorder}

@endpoint POST /
@required {ConformancePackName: str}
@optional {TemplateS3Uri: str, TemplateBody: str, DeliveryS3Bucket: str, DeliveryS3KeyPrefix: str, ConformancePackInputParameters: [ConformancePackInputParameter], TemplateSSMDocumentDetails: TemplateSSMDocumentDetails}
@returns(200) {ConformancePackArn: str?}

@endpoint POST /
@required {DeliveryChannel: DeliveryChannel}

@endpoint POST /
@required {ResultToken: str}
@optional {Evaluations: [Evaluation], TestMode: bool}
@returns(200) {FailedEvaluations: [Evaluation]?}

@endpoint POST /
@required {ConfigRuleName: str, ExternalEvaluation: ExternalEvaluation}

@endpoint POST /
@required {OrganizationConfigRuleName: str}
@optional {OrganizationManagedRuleMetadata: OrganizationManagedRuleMetadata, OrganizationCustomRuleMetadata: OrganizationCustomRuleMetadata, ExcludedAccounts: [str], OrganizationCustomPolicyRuleMetadata: OrganizationCustomPolicyRuleMetadata}
@returns(200) {OrganizationConfigRuleArn: str?}

@endpoint POST /
@required {OrganizationConformancePackName: str}
@optional {TemplateS3Uri: str, TemplateBody: str, DeliveryS3Bucket: str, DeliveryS3KeyPrefix: str, ConformancePackInputParameters: [ConformancePackInputParameter], ExcludedAccounts: [str]}
@returns(200) {OrganizationConformancePackArn: str?}

@endpoint POST /
@required {RemediationConfigurations: [RemediationConfiguration]}
@returns(200) {FailedBatches: [FailedRemediationBatch]?}

@endpoint POST /
@required {ConfigRuleName: str, ResourceKeys: [RemediationExceptionResourceKey]}
@optional {Message: str, ExpirationTime: str(timestamp)}
@returns(200) {FailedBatches: [FailedRemediationExceptionBatch]?}

@endpoint POST /
@required {ResourceType: str, SchemaVersionId: str, ResourceId: str, Configuration: str}
@optional {ResourceName: str, Tags: map<str,str>}

@endpoint POST /
@required {RetentionPeriodInDays: int}
@returns(200) {RetentionConfiguration: RetentionConfiguration?{Name: str, RetentionPeriodInDays: int}}

@endpoint POST /
@required {StoredQuery: StoredQuery}
@optional {Tags: [Tag]}
@returns(200) {QueryArn: str?}

@endpoint POST /
@required {Expression: str, ConfigurationAggregatorName: str}
@optional {Limit: int, MaxResults: int, NextToken: str}
@returns(200) {Results: [str]?, QueryInfo: QueryInfo?{SelectFields: [FieldInfo]?}, NextToken: str?}

@endpoint POST /
@required {Expression: str}
@optional {Limit: int, NextToken: str}
@returns(200) {Results: [str]?, QueryInfo: QueryInfo?{SelectFields: [FieldInfo]?}, NextToken: str?}

@endpoint POST /
@optional {ConfigRuleNames: [str]}

@endpoint POST /
@required {ConfigurationRecorderName: str}

@endpoint POST /
@required {ConfigRuleName: str, ResourceKeys: [ResourceKey]}
@returns(200) {FailureMessage: str?, FailedItems: [ResourceKey]?}

@endpoint POST /
@required {ResourceDetails: ResourceDetails, EvaluationMode: str}
@optional {EvaluationContext: EvaluationContext, EvaluationTimeout: int, ClientToken: str}
@returns(200) {ResourceEvaluationId: str?}

@endpoint POST /
@required {ConfigurationRecorderName: str}

@endpoint POST /
@required {ResourceArn: str, Tags: [Tag]}

@endpoint POST /
@required {ResourceArn: str, TagKeys: [str]}

@end
