versioned_docs/version-0.8.0-incubating/open-api/partitioning.yaml (173 lines of code) (raw):

# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. --- components: schemas: PartitioningSpec: oneOf: - $ref: "#/components/schemas/IdentityPartitioning" - $ref: "#/components/schemas/YearPartitioning" - $ref: "#/components/schemas/MonthPartitioning" - $ref: "#/components/schemas/DayPartitioning" - $ref: "#/components/schemas/HourPartitioning" - $ref: "#/components/schemas/BucketPartitioning" - $ref: "#/components/schemas/TruncatePartitioning" - $ref: "#/components/schemas/ListPartitioning" - $ref: "#/components/schemas/RangePartitioning" - $ref: "#/components/schemas/FunctionPartitioning" discriminator: propertyName: strategy mapping: identity: "#/components/schemas/IdentityPartitioning" year: "#/components/schemas/YearPartitioning" month: "#/components/schemas/MonthPartitioning" day: "#/components/schemas/DayPartitioning" hour: "#/components/schemas/HourPartitioning" bucket: "#/components/schemas/BucketPartitioning" truncate: "#/components/schemas/TruncatePartitioning" list: "#/components/schemas/ListPartitioning" range: "#/components/schemas/RangePartitioning" function: "#/components/schemas/FunctionPartitioning" IdentityPartitioning: type: object required: - strategy - fieldName properties: strategy: type: string enum: - "identity" fieldName: $ref: "./tables.yaml#/components/schemas/FieldName" YearPartitioning: type: object required: - strategy - fieldName properties: strategy: type: string enum: - "year" fieldName: $ref: "./tables.yaml#/components/schemas/FieldName" MonthPartitioning: type: object required: - strategy - fieldName properties: strategy: type: string enum: - "month" fieldName: $ref: "./tables.yaml#/components/schemas/FieldName" DayPartitioning: type: object required: - strategy - fieldName properties: strategy: type: string enum: - "day" fieldName: $ref: "./tables.yaml#/components/schemas/FieldName" HourPartitioning: type: object required: - strategy - fieldName properties: strategy: type: string enum: - "hour" fieldName: $ref: "./tables.yaml#/components/schemas/FieldName" BucketPartitioning: type: object required: - strategy - numBuckets - fieldNames properties: strategy: type: string enum: - "bucket" numBuckets: type: integer description: The number of buckets fieldNames: $ref: "./tables.yaml#/components/schemas/FieldNames" TruncatePartitioning: type: object required: - strategy - width - fieldName properties: strategy: type: string enum: - "truncate" width: type: integer description: The width of the truncate fieldName: $ref: "./tables.yaml#/components/schemas/FieldName" ListPartitioning: type: object required: - strategy - fieldNames properties: strategy: type: string enum: - "list" fieldNames: $ref: "./tables.yaml#/components/schemas/FieldNames" assignments: type: array description: The pre-assigned list partitions items: $ref: "./partitions.yaml#/components/schemas/ListPartition" RangePartitioning: type: object required: - strategy - fieldName properties: strategy: type: string enum: - "range" fieldName: $ref: "./tables.yaml#/components/schemas/FieldName" assignments: type: array description: The pre-assigned range partitions items: $ref: "./partitions.yaml#/components/schemas/RangePartition" FunctionPartitioning: type: object required: - strategy - funcName - funcArgs properties: strategy: type: string enum: - "function" funcName: type: string description: The name of the partitioning function funcArgs: type: array description: The arguments of the partitioning function items: $ref: "./expression.yaml#/components/schemas/FunctionArg"