#set( $limit = $util.defaultIfNull($context.args.limit, 100) )
#set( $query = {
  "expression": "#connectionAttribute = :connectionAttribute",
  "expressionNames": {
      "#connectionAttribute": "competitionId"
  },
  "expressionValues": {
      ":connectionAttribute": {
          "S": "$context.source.id"
    }
  }
} )
## [Start] Applying Key Condition **
#if( !$util.isNull($ctx.args.year) && !$util.isNull($ctx.args.year.beginsWith) )
  #set( $query.expression = "$query.expression AND begins_with(#sortKey, :sortKey)" )
  $util.qr($query.expressionNames.put("#sortKey", "year"))
  $util.qr($query.expressionValues.put(":sortKey", { "S": "$ctx.args.year.beginsWith" }))
#end
#if( !$util.isNull($ctx.args.year) && !$util.isNull($ctx.args.year.between) )
  #set( $query.expression = "$query.expression AND #sortKey BETWEEN :sortKey0 AND :sortKey1" )
  $util.qr($query.expressionNames.put("#sortKey", "year"))
  $util.qr($query.expressionValues.put(":sortKey0", { "S": "$ctx.args.year.between[0]" }))
  $util.qr($query.expressionValues.put(":sortKey1", { "S": "$ctx.args.year.between[1]" }))
#end
#if( !$util.isNull($ctx.args.year) && !$util.isNull($ctx.args.year.eq) )
  #set( $query.expression = "$query.expression AND #sortKey = :sortKey" )
  $util.qr($query.expressionNames.put("#sortKey", "year"))
  $util.qr($query.expressionValues.put(":sortKey", { "S": "$ctx.args.year.eq" }))
#end
#if( !$util.isNull($ctx.args.year) && !$util.isNull($ctx.args.year.lt) )
  #set( $query.expression = "$query.expression AND #sortKey < :sortKey" )
  $util.qr($query.expressionNames.put("#sortKey", "year"))
  $util.qr($query.expressionValues.put(":sortKey", { "S": "$ctx.args.year.lt" }))
#end
#if( !$util.isNull($ctx.args.year) && !$util.isNull($ctx.args.year.le) )
  #set( $query.expression = "$query.expression AND #sortKey <= :sortKey" )
  $util.qr($query.expressionNames.put("#sortKey", "year"))
  $util.qr($query.expressionValues.put(":sortKey", { "S": "$ctx.args.year.le" }))
#end
#if( !$util.isNull($ctx.args.year) && !$util.isNull($ctx.args.year.gt) )
  #set( $query.expression = "$query.expression AND #sortKey > :sortKey" )
  $util.qr($query.expressionNames.put("#sortKey", "year"))
  $util.qr($query.expressionValues.put(":sortKey", { "S": "$ctx.args.year.gt" }))
#end
#if( !$util.isNull($ctx.args.year) && !$util.isNull($ctx.args.year.ge) )
  #set( $query.expression = "$query.expression AND #sortKey >= :sortKey" )
  $util.qr($query.expressionNames.put("#sortKey", "year"))
  $util.qr($query.expressionValues.put(":sortKey", { "S": "$ctx.args.year.ge" }))
#end
## [End] Applying Key Condition **
{
  "version": "2017-02-28",
  "operation": "Query",
  "query":   $util.toJson($query),
  "scanIndexForward":   #if( $context.args.sortDirection )
    #if( $context.args.sortDirection == "ASC" )
true
    #else
false
    #end
  #else
true
  #end,
  "filter":   #if( $context.args.filter )
$util.transform.toDynamoDBFilterExpression($ctx.args.filter)
  #else
null
  #end,
  "limit": $limit,
  "nextToken":   #if( $context.args.nextToken )
$util.toJson($context.args.nextToken)
  #else
null
  #end,
  "index": "gsi-CompetitionSeasons"
}