2
0
mirror of https://github.com/VinylDNS/vinyldns synced 2025-08-22 10:10:12 +00:00

Update microsite, move to mdoc (#1023)

We used to rely on `tut` for docs, however it is deprecated to be replaced with mdoc.

Moved to an `mdoc` folder structure and updated all of the links (what a pain).
This commit is contained in:
Paul Cleary 2020-10-23 08:22:26 -04:00 committed by GitHub
parent e4264fb34c
commit 97e80e54e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
156 changed files with 198 additions and 394 deletions

View File

@ -378,8 +378,8 @@ lazy val docSettings = Seq(
micrositeHomepage := "http://vinyldns.io", micrositeHomepage := "http://vinyldns.io",
micrositeDocumentationUrl := "/api", micrositeDocumentationUrl := "/api",
micrositeGitterChannelUrl := "vinyldns/Lobby", micrositeGitterChannelUrl := "vinyldns/Lobby",
micrositeTwitterCreator := "@vinyldns",
micrositeDocumentationLabelDescription := "API Documentation", micrositeDocumentationLabelDescription := "API Documentation",
micrositeShareOnSocial := false,
micrositeExtraMdFiles := Map( micrositeExtraMdFiles := Map(
file("CONTRIBUTING.md") -> ExtraMdFileConfig( file("CONTRIBUTING.md") -> ExtraMdFileConfig(
"contributing.md", "contributing.md",
@ -390,13 +390,17 @@ lazy val docSettings = Seq(
micrositePushSiteWith := GitHub4s, micrositePushSiteWith := GitHub4s,
micrositeGithubToken := sys.env.get("SBT_MICROSITES_PUBLISH_TOKEN"), micrositeGithubToken := sys.env.get("SBT_MICROSITES_PUBLISH_TOKEN"),
ghpagesNoJekyll := false, ghpagesNoJekyll := false,
fork in tut := true, fork in mdoc := true,
micrositeEditButton := Some(MicrositeEditButton("Improve this page", "/edit/master/modules/docs/src/main/tut/{{ page.path }}")), mdocIn := (sourceDirectory in Compile).value / "mdoc",
micrositeCssDirectory := (resourceDirectory in Compile).value / "microsite" / "css",
micrositeCompilingDocsTool := WithMdoc,
micrositeFavicons := Seq(MicrositeFavicon("favicon16x16.png", "16x16"), MicrositeFavicon("favicon32x32.png", "32x32")),
micrositeEditButton := Some(MicrositeEditButton("Improve this page", "/edit/master/modules/docs/src/main/mdoc/{{ page.path }}")),
includeFilter in makeSite := "*.html" | "*.css" | "*.png" | "*.jpg" | "*.jpeg" | "*.gif" | "*.js" | "*.swf" | "*.md" | "*.webm" | "*.ico" | "CNAME" | "*.yml" | "*.svg" | "*.json" | "*.csv" includeFilter in makeSite := "*.html" | "*.css" | "*.png" | "*.jpg" | "*.jpeg" | "*.gif" | "*.js" | "*.swf" | "*.md" | "*.webm" | "*.ico" | "CNAME" | "*.yml" | "*.svg" | "*.json" | "*.csv"
) )
lazy val docs = (project in file("modules/docs")) lazy val docs = (project in file("modules/docs"))
.enablePlugins(MicrositesPlugin) .enablePlugins(MicrositesPlugin, MdocPlugin)
.settings(docSettings) .settings(docSettings)
// release stages // release stages

View File

@ -8,10 +8,10 @@ The VinylDNS documentation is published to the `gh-pages` branch after each succ
## Documentation Structure ## Documentation Structure
- The documentation site is built with the [sbt-microsites](https://47deg.github.io/sbt-microsites/) plugin. - The documentation site is built with the [sbt-microsites](https://47deg.github.io/sbt-microsites/) plugin.
- The [docs module](https://github.com/vinyldns/vinyldns/tree/master/modules/docs/src/main) contains most content for the documentation site: - The [docs module](https://github.com/vinyldns/vinyldns/tree/master/modules/docs/src/main) contains most content for the documentation site:
- The text content is in the [tut](https://github.com/vinyldns/vinyldns/tree/master/modules/docs/src/main/tut/) directory - The text content is in the [docs](https://github.com/vinyldns/vinyldns/tree/master/modules/docs/docs/) directory
- The primary menu is built through setting a position value in the linked file ([example](https://github.com/vinyldns/vinyldns/blob/master/modules/docs/src/main/tut/index.md)) or in [build.sbt](https://github.com/vinyldns/vinyldns/blob/master/build.sbt) if the target link is not a file in the docs module. - The primary menu is built through setting a position value in the linked file ([example](https://github.com/vinyldns/vinyldns/blob/master/modules/docs/src/main/tut/index.md)) or in [build.sbt](https://github.com/vinyldns/vinyldns/blob/master/build.sbt) if the target link is not a file in the docs module.
- The sidebar menu is maintained in the [menu.yml](https://github.com/vinyldns/vinyldns/tree/master/modules/docs/src/main/resources/microsite/data/menu.yml) - The sidebar menu is maintained in the [menu.yml](https://github.com/vinyldns/vinyldns/tree/master/modules/docs/docs/menu.yml)
- Images are stored in the [img](https://github.com/vinyldns/vinyldns/tree/master/modules/docs/src/main/tut/img/) directory. - Images are stored in the [img](https://github.com/vinyldns/vinyldns/tree/master/modules/docs/src/main/resources/microsite/img/) directory.
- Custom CSS is stored in the [custom.css](https://github.com/vinyldns/vinyldns/tree/master/modules/docs/src/main/resources/microsite/css/custom.css) file. - Custom CSS is stored in the [custom.css](https://github.com/vinyldns/vinyldns/tree/master/modules/docs/src/main/resources/microsite/css/custom.css) file.
- The [Contributing Guide](https://www.vinyldns.io/contributing.html) is the [CONTRIBUTING.md](https://github.com/vinyldns/vinyldns/blob/master/CONTRIBUTING.md) file at the root of the VinylDNS project. - The [Contributing Guide](https://www.vinyldns.io/contributing.html) is the [CONTRIBUTING.md](https://github.com/vinyldns/vinyldns/blob/master/CONTRIBUTING.md) file at the root of the VinylDNS project.
- The sbt-microsite configuration is in the docSettings section of the [build.sbt](https://github.com/vinyldns/vinyldns/blob/master/build.sbt) in the root of the VinylDNS project. - The sbt-microsite configuration is in the docSettings section of the [build.sbt](https://github.com/vinyldns/vinyldns/blob/master/build.sbt) in the root of the VinylDNS project.

View File

@ -9,9 +9,9 @@ section: "api"
Manually approves a batch change in pending review status given the batch change ID, resulting in revalidation and Manually approves a batch change in pending review status given the batch change ID, resulting in revalidation and
submission for backend processing. Only system administrators (ie. support or super user) can manually review a batch submission for backend processing. Only system administrators (ie. support or super user) can manually review a batch
change. In the event that a batch change is approved and still encounters non-fatal errors, it will remain in manual change. In the event that a batch change is approved and still encounters non-fatal errors, it will remain in manual
review state until a successful approval (**202** Accepted) or [rejection](../api/reject-batchchange) (**200** OK). review state until a successful approval (**202** Accepted) or [rejection](reject-batchchange.html) (**200** OK).
Note: If [manual review is disabled](../../operator/config-api#manual-review) in the VinylDNS instance, Note: If [manual review is disabled](../operator/config-api.html#manual-review) in the VinylDNS instance,
users trying to access this endpoint will encounter a **404 Not Found** response since it will not exist. users trying to access this endpoint will encounter a **404 Not Found** response since it will not exist.
@ -45,7 +45,7 @@ Code | description |
403 | **Forbidden** User is not a system administrator (ie. support or super user) or is attempting to approve a scheduled batch prior to its scheduled due date. | 403 | **Forbidden** User is not a system administrator (ie. support or super user) or is attempting to approve a scheduled batch prior to its scheduled due date. |
404 | **NotFound** Batch change does not exist. 404 | **NotFound** Batch change does not exist.
Since we re-run validations upon successful approval, the [create batch error codes](../api/create-batchchange#http-response-types) still hold, so it is possible to see them as well. Since we re-run validations upon successful approval, the [create batch error codes](create-batchchange.html#http-response-types) still hold, so it is possible to see them as well.
#### HTTP RESPONSE ATTRIBUTES <a id="http-response-attributes" /> #### HTTP RESPONSE ATTRIBUTES <a id="http-response-attributes" />
@ -56,8 +56,8 @@ userId | string | The unique identifier of the user that created the
userName | string | The username of the user that created the batch change. | userName | string | The username of the user that created the batch change. |
comments | string | Conditional: comments about the batch change, if provided. | comments | string | Conditional: comments about the batch change, if provided. |
createdTimestamp | date-time | The timestamp (UTC) when the batch change was created. | createdTimestamp | date-time | The timestamp (UTC) when the batch change was created. |
changes | Array of SingleChange | Array of single changes within a batch change. A *SingleChange* can either be a [SingleAddChange](../api/batchchange-model#singleaddchange-attributes) or a [SingleDeleteRRSetChange](../api/batchchange-model#singledeleterrsetchange-). | changes | Array of SingleChange | Array of single changes within a batch change. A *SingleChange* can either be a [SingleAddChange](batchchange-model.html#singleaddchange-attributes) or a [SingleDeleteRRSetChange](batchchange-model.html#singledeleterrsetchange-attributes). |
status | BatchChangeStatus | [Status of the batch change](../api/batchchange-model#batchchange-attributes). | status | BatchChangeStatus | [Status of the batch change](batchchange-model.html#batchchange-attributes). |
id | string | The unique identifier for this batch change. | id | string | The unique identifier for this batch change. |
ownerGroupId | string | Conditional: Record ownership assignment, if provided. | ownerGroupId | string | Conditional: Record ownership assignment, if provided. |
approvalStatus | BatchChangeApprovalStatus | Whether the batch change is currently awaiting manual review. Will be **ManuallyApproved** status when approving. | approvalStatus | BatchChangeApprovalStatus | Whether the batch change is currently awaiting manual review. Will be **ManuallyApproved** status when approving. |

View File

@ -77,7 +77,7 @@ in the DNS backend.
#### Single Change Errors #### Single Change Errors
Single change errors can be further classified as *non-fatal* or *fatal* errors. The presence of one or more fatal Single change errors can be further classified as *non-fatal* or *fatal* errors. The presence of one or more fatal
errors will result in an immediate failure (ie. hard stop) and no changes in the batch will be accepted. The behavior of non-fatal errors depends errors will result in an immediate failure (ie. hard stop) and no changes in the batch will be accepted. The behavior of non-fatal errors depends
on whether [manual review is configured on](../../operator/config-api#additional-configuration-settings): if manual review on whether [manual review is configured on](../operator/config-api.html#additional-configuration-settings): if manual review
is disabled, non-fatal errors are treated as fatal errors; if manual review is enabled, batches with only non-fatal errors will enter is disabled, non-fatal errors are treated as fatal errors; if manual review is enabled, batches with only non-fatal errors will enter
a pending review state. a pending review state.
@ -102,10 +102,14 @@ Note: if a user submits a batch change with `allowManualReview` set to false, th
the VinylDNS instance is configured to have manual review disabled. the VinylDNS instance is configured to have manual review disabled.
##### Non-Fatal Errors ##### Non-Fatal Errors
[non-fatal-errors]: #non-fatal-errors
- [Zone Discovery Failed](#ZoneDiscoveryFailed) - [Zone Discovery Failed](#ZoneDiscoveryFailed)
- [Record Requires Manual Review](#RecordRequiresManualReview) - [Record Requires Manual Review](#RecordRequiresManualReview)
##### Fatal Errors ##### Fatal Errors
[fatal-errors]: #fatal-errors
- [Invalid Domain Name](#InvalidDomainName) - [Invalid Domain Name](#InvalidDomainName)
- [Invalid Length](#InvalidLength) - [Invalid Length](#InvalidLength)
- [Invalid Record Type](#InvalidRecordType) - [Invalid Record Type](#InvalidRecordType)
@ -157,7 +161,7 @@ Record set with name <input> requires manual review.
##### Details: ##### Details:
Based on a [configurable list](../operator/config-api#manual-review-domains), VinylDNS will determine if the given inputName requires manual review before it can be processed. Based on a [configurable list](../operator/config-api.html#manual-review-domains), VinylDNS will determine if the given inputName requires manual review before it can be processed.
### Fatal Errors <a id="fatal-errors"></a> ### Fatal Errors <a id="fatal-errors"></a>
#### Invalid Domain Name <a id="InvalidDomainName"></a> #### Invalid Domain Name <a id="InvalidDomainName"></a>
@ -333,7 +337,7 @@ Record "<input>" Does Not Exist: cannot delete a record that does not exist.
##### Details: ##### Details:
A record with the given name could not be found in VinylDNS. A record with the given name could not be found in VinylDNS.
If the record exists in DNS, then you should [sync the zone](../api/sync-zone) for that record to bring VinylDNS up to date with what is in the DNS backend. If the record exists in DNS, then you should [sync the zone](sync-zone.html) for that record to bring VinylDNS up to date with what is in the DNS backend.
#### CNAME Conflict <a id="CNAMEConflict"></a> #### CNAME Conflict <a id="CNAMEConflict"></a>
@ -480,7 +484,7 @@ If there are issues with the batch change input data provided in the batch chang
Code | description | Code | description |
------------ | :---------- | ------------ | :---------- |
404 | **Not Found** - batch change not found for specified ID in [get batch change](../api/get-batchchange) request. | 404 | **Not Found** - batch change not found for specified ID in [get batch change](get-batchchange.html) request. |
##### ERROR MESSAGE: ##### ERROR MESSAGE:
@ -490,7 +494,7 @@ Batch change with id <id> cannot be found
##### DETAILS: ##### DETAILS:
The batch ID specified in the [get batch change](../api/get-batchchange) request does not exist. The batch ID specified in the [get batch change](get-batchchange.html) request does not exist.
#### MALFORMED JSON ERRORS <a id="malformed-json-errors" /> #### MALFORMED JSON ERRORS <a id="malformed-json-errors" />

View File

@ -14,22 +14,23 @@ section: "api"
- [Batch Change Example](#batchchange-example) - [Batch Change Example](#batchchange-example)
#### BATCH CHANGE INFORMATION <a id="batchchange-info" /> #### BATCH CHANGE INFORMATION <a id="batchchange-info" />
[batchchange-info]: #batchchange-info
Batch change is an alternative to submitting individual [RecordSet](../api/recordset-model) changes and provides the following: Batch change is an alternative to submitting individual [RecordSet](recordset-model.html) changes and provides the following:
- The ability to accept multiple changes in a single API call. - The ability to accept multiple changes in a single API call.
- The ability to include records of multiple record types across multiple zones. - The ability to include records of multiple record types across multiple zones.
- Input names are entered as fully-qualified domain names (or IP addresses for **PTR** records), so users don't have to think in record/zone context. - Input names are entered as fully-qualified domain names (or IP addresses for **PTR** records), so users don't have to think in record/zone context.
- All record validations are processed simultaneously. [Fatal errors](../api/batchchange-errors#fatal-errors) for any - All record validations are processed simultaneously. [Fatal errors](batchchange-errors.html#fatal-errors) for any
change in the batch will result in a **400** response and none will be applied. change in the batch will result in a **400** response and none will be applied.
- Support for [manual review](../../operator/config-api#additional-configuration-settings) if enabled in your VinylDNS instance. - Support for [manual review](../operator/config-api.html#additional-configuration-settings) if enabled in your VinylDNS instance.
Batch change will remain in limbo until a system administrator (ie. support or super user) either rejects it resulting in Batch change will remain in limbo until a system administrator (ie. support or super user) either rejects it resulting in
an immediate failure or approves it resulting in revalidation and submission for processing. an immediate failure or approves it resulting in revalidation and submission for processing.
- Support for [notifications](../../operator/config-api#additional-configuration-settings) when a batch change is rejected or implemented. - Support for [notifications](../operator/config-api.html#additional-configuration-settings) when a batch change is rejected or implemented.
A batch change consists of multiple single changes which can be a combination of [SingleAddChanges](#singleaddchange-attributes) and [SingleDeleteRRSetChanges](#singledeleterrsetchange-attributes). A batch change consists of multiple single changes which can be a combination of [SingleAddChanges](#singleaddchange-attributes) and [SingleDeleteRRSetChanges](#singledeleterrsetchange-attributes).
**Note:** In the portal batch change is referred to as [DNS Change](../portal/dns-changes). **Note:** In the portal batch change is referred to as [DNS Change](../portal/dns-changes.html).
To update an existing record, you must delete the record first and add the record again with the updated changes. To update an existing record, you must delete the record first and add the record again with the updated changes.
@ -41,6 +42,7 @@ Batch changes are also susceptible to the following restrictions:
#### BATCH CHANGE ATTRIBUTES <a id="batchchange-attributes" /> #### BATCH CHANGE ATTRIBUTES <a id="batchchange-attributes" />
[batchchange-attributes]: #batchchange-attributes
name | type | description | name | type | description |
------------ | :---------- | :---------- | ------------ | :---------- | :---------- |
@ -49,7 +51,7 @@ userName | string | The username of the user that created the batch ch
comments | string | Optional comments about the batch change. | comments | string | Optional comments about the batch change. |
createdTimestamp | date-time | The timestamp (UTC) when the batch change was created. | createdTimestamp | date-time | The timestamp (UTC) when the batch change was created. |
changes | Array of SingleChange | Array of single changes within a batch change. A *SingleChange* can either be a [SingleAddChange](#singleaddchange-attributes) or a [SingleDeleteRRSetChange](#singledeleterrsetchange-attributes). | changes | Array of SingleChange | Array of single changes within a batch change. A *SingleChange* can either be a [SingleAddChange](#singleaddchange-attributes) or a [SingleDeleteRRSetChange](#singledeleterrsetchange-attributes). |
status | BatchChangeStatus | - **PendingProcessing** - at least one change in batch has not finished processing<br>- **Complete** - all changes have been processed successfully<br>- **Failed** - all changes failed during processing<br>- **PartialFailure** - some changes have failed and the rest were successful<br>- **PendingReview** - one or more changes requires manual [approval](../api/approve-batchchange)/[rejection](../api/reject-batchchange) by a system administrator (ie. super or support user) to proceed<br>- **Rejected** - the batch change was rejected by a system administrator (ie. super or support user) and no changes were applied<br>- **Scheduled** - the batch change is scheduled for a later date at which time it needs to be approved to proceed.<br>- **Cancelled** - the PendingReview batch change was cancelled by its creator before review.| status | BatchChangeStatus | - **PendingProcessing** - at least one change in batch has not finished processing<br>- **Complete** - all changes have been processed successfully<br>- **Failed** - all changes failed during processing<br>- **PartialFailure** - some changes have failed and the rest were successful<br>- **PendingReview** - one or more changes requires manual [approval](approve-batchchange.html)/[rejection](reject-batchchange.html) by a system administrator (ie. super or support user) to proceed<br>- **Rejected** - the batch change was rejected by a system administrator (ie. super or support user) and no changes were applied<br>- **Scheduled** - the batch change is scheduled for a later date at which time it needs to be approved to proceed.<br>- **Cancelled** - the PendingReview batch change was cancelled by its creator before review.|
id | string | The unique identifier for this batch change. | id | string | The unique identifier for this batch change. |
ownerGroupId | string | Record ownership assignment. Required if any records in the batch change are in shared zones and are new or unowned. | ownerGroupId | string | Record ownership assignment. Required if any records in the batch change are in shared zones and are new or unowned. |
approvalStatus | BatchChangeApprovalStatus | Whether the batch change is currently awaiting manual review. Can be one of **AutoApproved**, **PendingReview**, **ManuallyApproved**, **Rejected**, or **Cancelled**. | approvalStatus | BatchChangeApprovalStatus | Whether the batch change is currently awaiting manual review. Can be one of **AutoApproved**, **PendingReview**, **ManuallyApproved**, **Rejected**, or **Cancelled**. |
@ -61,10 +63,12 @@ scheduledTime | date-time | Optional requested date and time to process the b
cancelledTimestamp | date-time | Optional date and time a batch change was cancelled by its creator. | cancelledTimestamp | date-time | Optional date and time a batch change was cancelled by its creator. |
#### SINGLE CHANGE ATTRIBUTES <a id="singlechange-attributes" /> #### SINGLE CHANGE ATTRIBUTES <a id="singlechange-attributes" />
[singlechange-attributes]: #singlechange-attributes
A successful batch change response consists of a corresponding [SingleAddChange](#singleaddchange-attributes) or [SingleDeleteRRSetChange](#singledeleterrsetchange-attributes) for each batch change input. See the [batch change create](../api/create-batchchange) page for details on constructing a batch change request. A successful batch change response consists of a corresponding [SingleAddChange](#singleaddchange-attributes) or [SingleDeleteRRSetChange](#singledeleterrsetchange-attributes) for each batch change input. See the [batch change create](create-batchchange.html) page for details on constructing a batch change request.
#### SingleAddChange <a id="singleaddchange-attributes" /> #### SingleAddChange <a id="singleaddchange-attributes" />
[singleaddchange-attributes]: #singleaddchange-attributes
name | type | description | name | type | description |
------------ | :------------ | :---------- | ------------ | :------------ | :---------- |
@ -72,7 +76,7 @@ changeType | ChangeInputType | Type of change input. Can either be an **Add**
inputName | string | The fully-qualified domain name of the record which was provided in the create batch request. | inputName | string | The fully-qualified domain name of the record which was provided in the create batch request. |
type | RecordType | Type of DNS record, supported records for batch changes are currently: **A**, **AAAA**, **CNAME**, and **PTR**. | type | RecordType | Type of DNS record, supported records for batch changes are currently: **A**, **AAAA**, **CNAME**, and **PTR**. |
ttl | long | The time-to-live in seconds. | ttl | long | The time-to-live in seconds. |
record | [RecordData](../api/recordset-model#record-data) | The data added for this record, which varies by record type. | record | [RecordData](recordset-model.html#record-data) | The data added for this record, which varies by record type. |
status | SingleChangeStatus | Status for this change. Can be one of: **Pending**, **Complete**, **Failed**, **NeedsReview** or **Rejected**. | status | SingleChangeStatus | Status for this change. Can be one of: **Pending**, **Complete**, **Failed**, **NeedsReview** or **Rejected**. |
recordName | string | The name of the record. Record names for the apex will be match the zone name (including terminating dot). | recordName | string | The name of the record. Record names for the apex will be match the zone name (including terminating dot). |
zoneName | string | The name of the zone. | zoneName | string | The name of the zone. |
@ -84,13 +88,14 @@ validationErrors | Array of BatchChangeError | Array containing any validation e
id | string | The unique identifier for this change. | id | string | The unique identifier for this change. |
#### SingleDeleteRRSetChange <a id="singledeleterrsetchange-attributes" /> #### SingleDeleteRRSetChange <a id="singledeleterrsetchange-attributes" />
[singledeleterrsetchange-attributes]: #singledeleterrsetchange-attributes
name | type | description | name | type | description |
------------ | :------------ | :---------- | ------------ | :------------ | :---------- |
changeType | ChangeInputType | Type of change input. Can either be an **Add** or **DeleteRecordSet**. [See more details](#changetype-values) about behavior of `changeType` interaction. | changeType | ChangeInputType | Type of change input. Can either be an **Add** or **DeleteRecordSet**. [See more details](#changetype-values) about behavior of `changeType` interaction. |
inputName | string | The fully-qualified domain name of the record which was provided in the create batch request. | inputName | string | The fully-qualified domain name of the record which was provided in the create batch request. |
type | RecordType | Type of DNS record, supported records for batch changes are currently: **A**, **AAAA**, **CNAME**, and **PTR**. | type | RecordType | Type of DNS record, supported records for batch changes are currently: **A**, **AAAA**, **CNAME**, and **PTR**. |
record | [RecordData](../api/recordset-model#record-data) | Optional. The data deleted for this record, which varies by record type. If not provided, the entire DNS recordset was deleted. | record | [RecordData](recordset-model.html#record-data) | Optional. The data deleted for this record, which varies by record type. If not provided, the entire DNS recordset was deleted. |
status | SingleChangeStatus | Status for this change. Can be one of: **Pending**, **Complete**, **Failed**, **NeedsReview** or **Rejected**. | status | SingleChangeStatus | Status for this change. Can be one of: **Pending**, **Complete**, **Failed**, **NeedsReview** or **Rejected**. |
recordName | string | The name of the record. Record names for the apex will be match the zone name (including terminating dot). | recordName | string | The name of the record. Record names for the apex will be match the zone name (including terminating dot). |
zoneName | string | The name of the zone. | zoneName | string | The name of the zone. |
@ -103,6 +108,8 @@ id | string | The unique identifier for this change. |
#### ChangeType Values <a id="changetype-values" /> #### ChangeType Values <a id="changetype-values" />
[changetype-values]: #changetype-values
There are two valid `changeType`s for a `SingleChange`: **Add** and **DeleteRecordSet** There are two valid `changeType`s for a `SingleChange`: **Add** and **DeleteRecordSet**
`changeType`s can be used independently or combined to achieve the desired behavior described below. `changeType`s can be used independently or combined to achieve the desired behavior described below.
@ -113,6 +120,7 @@ There are two valid `changeType`s for a `SingleChange`: **Add** and **DeleteReco
- Update an existing record set: 1. **DeleteRecordSet** specifying existing record data (single entry delete) or not specifying record data (full delete) *and* 2. **Add** with record data - Update an existing record set: 1. **DeleteRecordSet** specifying existing record data (single entry delete) or not specifying record data (full delete) *and* 2. **Add** with record data
#### BATCH CHANGE EXAMPLE <a id="batchchange-example" /> #### BATCH CHANGE EXAMPLE <a id="batchchange-example" />
[batchchange-example]: #batchchange-example
Successful batch change response example with a [SingleAddChange](#singleaddchange-attributes) and a [SingleDeleteRRSetChange](#singledeleterrsetchange-attributes). Successful batch change response example with a [SingleAddChange](#singleaddchange-attributes) and a [SingleDeleteRRSetChange](#singledeleterrsetchange-attributes).

View File

@ -8,7 +8,7 @@ section: "api"
Cancels a batch change that is PendingReview. Only the user who created the batch change can cancel it. Cancels a batch change that is PendingReview. Only the user who created the batch change can cancel it.
Note: If [manual review is disabled](../../operator/config-api#manual-review) in the VinylDNS instance, Note: If [manual review is disabled](../operator/config-api.html#manual-review) in the VinylDNS instance,
users trying to access this endpoint will encounter a **404 Not Found** response since it will not exist. users trying to access this endpoint will encounter a **404 Not Found** response since it will not exist.
#### HTTP REQUEST #### HTTP REQUEST
@ -34,4 +34,4 @@ Code | description |
#### HTTP RESPONSE ATTRIBUTES <a id="http-response-attributes" /> #### HTTP RESPONSE ATTRIBUTES <a id="http-response-attributes" />
See [Batch Change Model attributes](../api/batchchange-model#batchchange-attributes) See [Batch Change Model attributes](batchchange-model.html#batchchange-attributes)

View File

@ -6,7 +6,7 @@ section: "api"
# Create Batch Change # Create Batch Change
Creates a batch change with [SingleAddChanges](../api/batchchange-model#singleaddchange-attributes) and/or [SingleDeleteRRSetChanges](../api/batchchange-model#singledeleterrsetchange-attributes) across different zones. A delete and add of the same record will be treated as an update on that record set. Regardless of the input order in the batch change, all deletes for the same recordset will be logically applied before the adds. Creates a batch change with [SingleAddChanges](batchchange-model.html#singleaddchange-attributes) and/or [SingleDeleteRRSetChanges](batchchange-model.html#singledeleterrsetchange-attributes) across different zones. A delete and add of the same record will be treated as an update on that record set. Regardless of the input order in the batch change, all deletes for the same recordset will be logically applied before the adds.
Current supported record types for creating a batch change are: **A**, **AAAA**, **CNAME**, **MX**, **PTR**, **TXT**. A batch must contain at least one change and no more than 20 changes. Current supported record types for creating a batch change are: **A**, **AAAA**, **CNAME**, **MX**, **PTR**, **TXT**. A batch must contain at least one change and no more than 20 changes.
Supported record types for records in shared zones may vary. Contact your VinylDNS administrators to find the allowed record types. Supported record types for records in shared zones may vary. Contact your VinylDNS administrators to find the allowed record types.
@ -16,7 +16,7 @@ This does not apply to zone administrators or users with specific ACL access rul
> POST /zones/batchrecordchanges?allowManualReview={true &#124; false} > POST /zones/batchrecordchanges?allowManualReview={true &#124; false}
Note that the batch change request inputs are a subset of the full [batch change model](../api/batchchange-model#batchchange-attributes). Note that the batch change request inputs are a subset of the full [batch change model](batchchange-model.html#batchchange-attributes).
#### HTTP REQUEST PARAMS #### HTTP REQUEST PARAMS
@ -24,7 +24,7 @@ name | type | required? | description |
------------ | :------------ | ----------- | :---------- | ------------ | :------------ | ----------- | :---------- |
comments | string | no | Optional comments about the batch change. | comments | string | no | Optional comments about the batch change. |
changes | Array of ChangeInput| yes | Set of *ChangeInput*s in the batch change. A *ChangeInput* is an [AddChangeInput](#addchangeinput-attributes) or [DeleteChangeInput](#deletechangeinput-attributes). Type is inferred from specified *changeType*.| changes | Array of ChangeInput| yes | Set of *ChangeInput*s in the batch change. A *ChangeInput* is an [AddChangeInput](#addchangeinput-attributes) or [DeleteChangeInput](#deletechangeinput-attributes). Type is inferred from specified *changeType*.|
ownerGroupId | string | sometimes | Record ownership assignment. Required if any records in the batch change are in [shared zones](../api/zone-model#shared-zones) and are new or unowned. | ownerGroupId | string | sometimes | Record ownership assignment. Required if any records in the batch change are in [shared zones](zone-model.html#shared-zones) and are new or unowned. |
scheduledTime | date-time | no | Optional datetime. Stored as UTC. Batch change will not be processed until after the scheduled time. Required format is an ISO 8601 date time string.| scheduledTime | date-time | no | Optional datetime. Stored as UTC. Batch change will not be processed until after the scheduled time. Required format is an ISO 8601 date time string.|
allowManualReview | boolean | no | Optional override to control whether manual review is enabled for the batch change request. Default value is `true`. Must be passed in as a query parameter, not in the request body. | allowManualReview | boolean | no | Optional override to control whether manual review is enabled for the batch change request. Default value is `true`. Must be passed in as a query parameter, not in the request body. |
@ -36,7 +36,7 @@ changeType | ChangeInputType | yes | Type of change input. Must be set
inputName | string | yes | The fully qualified domain name of the record being added. For **PTR**, the input name is a valid IPv4 or IPv6 address. | inputName | string | yes | The fully qualified domain name of the record being added. For **PTR**, the input name is a valid IPv4 or IPv6 address. |
type | RecordType | yes | Type of DNS record. Supported records for batch changes are currently: **A**, **AAAA**, **CNAME**, and **PTR**. | type | RecordType | yes | Type of DNS record. Supported records for batch changes are currently: **A**, **AAAA**, **CNAME**, and **PTR**. |
ttl | long | no | The time-to-live in seconds. The minimum and maximum values are 30 and 2147483647, respectively. If excluded, this will be set to the system default for new adds, or the existing TTL for updates | ttl | long | no | The time-to-live in seconds. The minimum and maximum values are 30 and 2147483647, respectively. If excluded, this will be set to the system default for new adds, or the existing TTL for updates |
record | [RecordData](../api/recordset-model#record-data) | yes | The data for the record. | record | [RecordData](recordset-model.html#record-data) | yes | The data for the record. |
##### DeleteChangeInput <a id="deletechangeinput-attributes" /> ##### DeleteChangeInput <a id="deletechangeinput-attributes" />
@ -45,7 +45,7 @@ name | type | required? | description |
changeType | ChangeInputType | yes | Type of change input. Must be **DeleteRecordSet** for *DeleteChangeInput*. | changeType | ChangeInputType | yes | Type of change input. Must be **DeleteRecordSet** for *DeleteChangeInput*. |
inputName | string | yes | The fully qualified domain name of the record being deleted. | inputName | string | yes | The fully qualified domain name of the record being deleted. |
type | RecordType | yes | Type of DNS record. Supported records for batch changes are currently: **A**, **AAAA**, **CNAME**, and **PTR**. | type | RecordType | yes | Type of DNS record. Supported records for batch changes are currently: **A**, **AAAA**, **CNAME**, and **PTR**. |
record | [RecordData](../api/recordset-model#record-data) | no | The data for the record. If specified, only this DNS entry for the existing DNS recordset will be deleted; if unspecified, the entire DNS recordset will be deleted. | record | [RecordData](recordset-model.html#record-data) | no | The data for the record. If specified, only this DNS entry for the existing DNS recordset will be deleted; if unspecified, the entire DNS recordset will be deleted. |
#### EXAMPLE HTTP REQUEST #### EXAMPLE HTTP REQUEST
@ -102,20 +102,21 @@ The first two items in the changes list are SingleAddChanges of an **A** record
#### HTTP RESPONSE TYPES #### HTTP RESPONSE TYPES
[http-response-types]: #http-response-types
Code | description | Code | description |
------------ | :---------- | ------------ | :---------- |
202 | **Accepted** - The batch change is validated and is returned in the response body. Based on `status`, the batch will either be sent for immediate backend processing (`PendingProcessing`) or pending manual review (`PendingReview`). | 202 | **Accepted** - The batch change is validated and is returned in the response body. Based on `status`, the batch will either be sent for immediate backend processing (`PendingProcessing`) or pending manual review (`PendingReview`). |
400 | **Bad Request** - Error in the batch change. See [Batch Change Errors](../api/batchchange-errors) page. | 400 | **Bad Request** - Error in the batch change. See [Batch Change Errors](batchchange-errors.html) page. |
403 | **Forbidden** - The user does not have the access required to perform the action. | 403 | **Forbidden** - The user does not have the access required to perform the action. |
413 | **Request Entity Too Large** - Cannot request more than <limit> changes in a single batch change request. | 413 | **Request Entity Too Large** - Cannot request more than <limit> changes in a single batch change request. |
422 | **Unprocessable Entity** - the batch does not contain any changes, thus cannot be processed. | 422 | **Unprocessable Entity** - the batch does not contain any changes, thus cannot be processed. |
A batch change goes through numerous validations before it is processed. This results in corresponding BadRequest or error responses. View the full list of batch change errors [here](../api/batchchange-errors). A batch change goes through numerous validations before it is processed. This results in corresponding BadRequest or error responses. View the full list of batch change errors [here](batchchange-errors.html).
#### HTTP RESPONSE ATTRIBUTES #### HTTP RESPONSE ATTRIBUTES
On success, the response from create batch change includes the fields the user input, as well as some additional information provided by the system. This response is the same as that of [get batch change](../api/get-batchchange#http-response-attributes). On success, the response from create batch change includes the fields the user input, as well as some additional information provided by the system. This response is the same as that of [get batch change](get-batchchange.html#http-response-attributes).
#### EXAMPLE RESPONSE #### EXAMPLE RESPONSE

View File

@ -20,8 +20,8 @@ zoneId | string | yes | id of the zone where the recordset
name | string | yes | the name of the recordset being updated | name | string | yes | the name of the recordset being updated |
type | string | yes | the type of recordset | type | string | yes | the type of recordset |
ttl | integer | yes | the TTL in seconds | ttl | integer | yes | the TTL in seconds |
records | array of record data | yes | record data for recordset, see [RecordSet Model](../api/recordset-model) | records | array of record data | yes | record data for recordset, see [RecordSet Model](recordset-model.html) |
ownerGroupId | string | no | Record ownership assignment, applicable if the recordset is in a [shared zone](../api/zone-model#shared-zones) | ownerGroupId | string | no | Record ownership assignment, applicable if the recordset is in a [shared zone](zone-model.html#shared-zones) |
#### EXAMPLE HTTP REQUEST #### EXAMPLE HTTP REQUEST
``` ```

View File

@ -15,7 +15,7 @@ if no info is provided the default VinylDNS connections will be used
#### HTTP REQUEST PARAMS #### HTTP REQUEST PARAMS
**zone fields** - adminGroupId, name, and email are required - refer to [zone model](../api/zone-model) | **zone fields** - adminGroupId, name, and email are required - refer to [zone model](zone-model.html) |
#### EXAMPLE HTTP REQUEST #### EXAMPLE HTTP REQUEST
``` ```
@ -41,7 +41,7 @@ Code | description |
name | type | description | name | type | description |
------------ | ------------- | :---------- | ------------ | ------------- | :---------- |
status | string | Status of zone change | status | string | Status of zone change |
zone | map | Refer to [zone model](../api/zone-model) | zone | map | Refer to [zone model](zone-model.html) |
created | string | The timestamp (UTC) the change was initiated | created | string | The timestamp (UTC) the change was initiated |
changeType | string | Type of change requested (Create, Update, Sync, Delete); in this case Create | changeType | string | Type of change requested (Create, Update, Sync, Delete); in this case Create |
userId | string | The user id that initiated the change | userId | string | The user id that initiated the change |

View File

@ -8,7 +8,7 @@ section: "api"
Abandons an existing zone that has already been connected to. Abandons an existing zone that has already been connected to.
The zone will be disconnected from VinylDNS, but the RecordSets still exist in the backend DNS zone. The zone will be disconnected from VinylDNS, but the RecordSets still exist in the backend DNS zone.
To delete the RecordSets see [Delete RecordSet](../api/delete-recordset) To delete the RecordSets see [Delete RecordSet](delete-recordset.html)
*Note: We do not recommend that you abandon zones, as your zone history will be lost after the Delete. This endpoint is provided in certain situations where a zone was incorrectly started.* *Note: We do not recommend that you abandon zones, as your zone history will be lost after the Delete. This endpoint is provided in certain situations where a zone was incorrectly started.*

View File

@ -38,11 +38,11 @@ userId | string | The unique identifier of the user that created the
userName | string | The username of the user that created the batch change. | userName | string | The username of the user that created the batch change. |
comments | string | Optional comments about the batch change. | comments | string | Optional comments about the batch change. |
createdTimestamp | date-time | The timestamp (UTC) when the batch change was created. | createdTimestamp | date-time | The timestamp (UTC) when the batch change was created. |
changes | Array of SingleChange | Array of single changes within a batch change. A *SingleChange* can either be a [SingleAddChange](../api/batchchange-model#singleaddchange-attributes) or a [SingleDeleteRRSetChange](../api/batchchange-model#singledeleterrsetchange-). | changes | Array of SingleChange | Array of single changes within a batch change. A *SingleChange* can either be a [SingleAddChange](batchchange-model.html#singleaddchange-attributes) or a [SingleDeleteRRSetChange](batchchange-model.html#singledeleterrsetchange-attributes). |
status | BatchChangeStatus | [Status of the batch change](../api/batchchange-model#batchchange-attributes). | status | BatchChangeStatus | [Status of the batch change](batchchange-model.html#batchchange-attributes). |
id | string | The unique identifier for this batch change. | id | string | The unique identifier for this batch change. |
scheduledTime | date-time | Optional requested date and time to process the batch change. | scheduledTime | date-time | Optional requested date and time to process the batch change. |
approvalStatus| BatchChangeApprovalStatus |[Approval status of the batch change](../api/batchchange-model#batchchange-attributes). | approvalStatus| BatchChangeApprovalStatus |[Approval status of the batch change](batchchange-model.html#batchchange-attributes). |
reviewerId | string | Optional identifier of reviewer if batch change required manual review | reviewerId | string | Optional identifier of reviewer if batch change required manual review |
reviewComment | string | Optional comment by reviewer if batch change required manual review | reviewComment | string | Optional comment by reviewer if batch change required manual review |
reviewTimestamp | date-time | Optional timestamp (UTC) when the batch change was reviewed if manual review was required. | reviewTimestamp | date-time | Optional timestamp (UTC) when the batch change was reviewed if manual review was required. |

View File

@ -37,7 +37,7 @@ records | array of record data | Array of record data objects |
id | string | The unique ID of the record set | id | string | The unique ID of the record set |
account | string | **DEPRECATED** the ID of the account that created the record set | account | string | **DEPRECATED** the ID of the account that created the record set |
accessLevel | string | accessLevel that user has to record set based off acl rules and whether or not user is in Zone Admin Group | accessLevel | string | accessLevel that user has to record set based off acl rules and whether or not user is in Zone Admin Group |
ownerGroupId | string | Record ownership assignment, if found, applicable if the recordset is in a [shared zone](../api/zone-model#shared-zones) | ownerGroupId | string | Record ownership assignment, if found, applicable if the recordset is in a [shared zone](zone-model.html#shared-zones) |
ownerGroupName | string | Name of assigned owner group, if found | ownerGroupName | string | Name of assigned owner group, if found |
#### EXAMPLE RESPONSE #### EXAMPLE RESPONSE

View File

@ -25,7 +25,7 @@ Code | description |
name | type | description | name | type | description |
------------ | ------------- | :---------- | ------------ | ------------- | :---------- |
zone | map | refer to [zone model](../api/zone-model) | zone | map | refer to [zone model](zone-model.html) |
#### EXAMPLE RESPONSE #### EXAMPLE RESPONSE

View File

@ -25,7 +25,7 @@ Code | description |
name | type | description | name | type | description |
------------ | ------------- | :---------- | ------------ | ------------- | :---------- |
zone | map | refer to [zone model](../api/zone-model) | zone | map | refer to [zone model](zone-model.html) |
#### EXAMPLE RESPONSE #### EXAMPLE RESPONSE

View File

@ -0,0 +1,13 @@
---
layout: docs
title: "API documentation"
section: "api"
---
# API documentation
* [Authentication](auth-mechanism.html)
* [Zone](zone-model.html)
* [RecordSet](recordset-model.html)
* [Batch Change](batchchange-model.html)
* [Membership](membership-model.html)

View File

@ -52,7 +52,7 @@ userName | string | The username of the user that created the batch ch
comments | string | Conditional: comments about the batch change, if provided. | comments | string | Conditional: comments about the batch change, if provided. |
createdTimestamp | date-time | The timestamp (UTC) when the batch change was created. | createdTimestamp | date-time | The timestamp (UTC) when the batch change was created. |
totalChanges | int | The total number of single changes within the batch change. | totalChanges | int | The total number of single changes within the batch change. |
status | BatchChangeStatus | [Status of the batch change](../api/batchchange-model#batchchange-attributes). | status | BatchChangeStatus | [Status of the batch change](batchchange-model.html#batchchange-attributes). |
id | string | The unique identifier for this batch change. | id | string | The unique identifier for this batch change. |
ownerGroupName | string | Conditional: Record ownership assignment, if provided. | ownerGroupName | string | Conditional: Record ownership assignment, if provided. |
approvalStatus | BatchChangeApprovalStatus | Whether the batch change is currently awaiting manual review. Can be one of **AutoApproved**, **PendingReview**, **ManuallyApproved**, **Rejected**, or **Cancelled**. | approvalStatus | BatchChangeApprovalStatus | Whether the batch change is currently awaiting manual review. Can be one of **AutoApproved**, **PendingReview**, **ManuallyApproved**, **Rejected**, or **Cancelled**. |

View File

@ -40,8 +40,8 @@ maxItems | integer | maxItems sent in request, default is 100 |
name | type | description | name | type | description |
------------ | ------------- | :---------- | ------------ | ------------- | :---------- |
newGroup | map | The new group as a result of the change, refer to [Membership Model]("../api/membership-model") | newGroup | map | The new group as a result of the change, refer to [Membership Model]("/api/membership-model") |
oldGroup | map | The old group before the change, refer to [Membership Model]("../api/membership-model") | oldGroup | map | The old group before the change, refer to [Membership Model]("/api/membership-model") |
created | string | Millisecond timestamp that change was created created | string | Millisecond timestamp that change was created
userId | string | User Id of user who made the change | userId | string | User Id of user who made the change |
changeType | string | The type change, either Create, Update, or Delete | changeType | string | The type change, either Create, Update, or Delete |

View File

@ -24,7 +24,7 @@ Code | description |
name | type | description | name | type | description |
------------ | ------------- | :---------- | ------------ | ------------- | :---------- |
admins | Array of Users | refer to [membership model](../api/membership-model) | admins | Array of Users | refer to [membership model](membership-model.html) |
#### EXAMPLE RESPONSE #### EXAMPLE RESPONSE

View File

@ -31,7 +31,7 @@ Code | description |
name | type | description | name | type | description |
------------ | ------------- | :---------- | ------------ | ------------- | :---------- |
members | Array of Users | refer to [membership model](../api/membership-model), these Users will also include an isAdmin attribute | members | Array of Users | refer to [membership model](membership-model.html), these Users will also include an isAdmin attribute |
startFrom | *any* | startFrom sent in request, will not be returned if not provided | startFrom | *any* | startFrom sent in request, will not be returned if not provided |
nextId | *any* | nextId, used as startFrom parameter of next page request, will not be returned if members are exhausted | nextId | *any* | nextId, used as startFrom parameter of next page request, will not be returned if members are exhausted |
maxItems | integer | maxItems sent in request, default is 100 | maxItems | integer | maxItems sent in request, default is 100 |

View File

@ -32,7 +32,7 @@ Code | description |
name | type | description | name | type | description |
------------ | ------------- | :---------- | ------------ | ------------- | :---------- |
groups | Array of Groups | refer to [membership model](../api/membership-model) | groups | Array of Groups | refer to [membership model](membership-model.html) |
groupNameFilter | string | name filter sent in request | groupNameFilter | string | name filter sent in request |
startFrom | *any* | startFrom sent in request, will not be returned if not provided | startFrom | *any* | startFrom sent in request, will not be returned if not provided |
nextId | *any* | nextId, used as startFrom parameter of next page request, will not be returned if groups are exhausted | nextId | *any* | nextId, used as startFrom parameter of next page request, will not be returned if groups are exhausted |

View File

@ -17,7 +17,7 @@ Retrieves a list of RecordSets from the zone
name | type | required? | description | name | type | required? | description |
------------ | ------------- | ----------- | :---------- | ------------ | ------------- | ----------- | :---------- |
recordNameFilter | string | no | Characters that are part of the record name to search for. The wildcard character `*` is supported, for example `www*`. Omit the wildcard when searching for an exact record name. | recordNameFilter | string | no | Characters that are part of the record name to search for. The wildcard character `*` is supported, for example `www*`. Omit the wildcard when searching for an exact record name. |
recordTypeFilter | Array of RecordType | no | An array of record types to filter for listing record sets. Refer to [recordset mode](../api/recordset-model) for supported types. Invalid record types will be ignored. If left empty or no valid record types are provided, then all record types will be returned. | recordTypeFilter | Array of RecordType | no | An array of record types to filter for listing record sets. Refer to [recordset mode](recordset-model.html) for supported types. Invalid record types will be ignored. If left empty or no valid record types are provided, then all record types will be returned. |
nameSort | string | no | Name sort order for record sets returned by list record set response. Valid values are `ASC` (ascending; default) and `DESC` (descending). nameSort | string | no | Name sort order for record sets returned by list record set response. Valid values are `ASC` (ascending; default) and `DESC` (descending).
startFrom | *any* | no | In order to advance through pages of results, the startFrom is set to the `nextId` that is returned on the previous response. It is up to the client to maintain previous pages if the client wishes to advance forward and backward. If not specified, will return the first page of results | startFrom | *any* | no | In order to advance through pages of results, the startFrom is set to the `nextId` that is returned on the previous response. It is up to the client to maintain previous pages if the client wishes to advance forward and backward. If not specified, will return the first page of results |
maxItems | integer | no | The number of items to return in the page. Valid values are 1 to 100. Defaults to 100 if not provided. | maxItems | integer | no | The number of items to return in the page. Valid values are 1 to 100. Defaults to 100 if not provided. |
@ -35,7 +35,7 @@ Code | description |
name | type | description | name | type | description |
------------ | ------------- | :---------- | ------------ | ------------- | :---------- |
recordSets | Array of RecordSets | refer to [recordset model](../api/recordset-model), the RecordSet data will also include the accessLevel the requesting user has based off acl rules and membership in Zone Admin Group | recordSets | Array of RecordSets | refer to [recordset model](recordset-model.html), the RecordSet data will also include the accessLevel the requesting user has based off acl rules and membership in Zone Admin Group |
startFrom | *any* | startFrom sent in request, will not be returned if not provided | startFrom | *any* | startFrom sent in request, will not be returned if not provided |
nextId | *any* | nextId, used as startFrom parameter of next page request, will not be returned if record sets are exhausted | nextId | *any* | nextId, used as startFrom parameter of next page request, will not be returned if record sets are exhausted |
maxItems | integer | maxItems sent in request, default is 100 | maxItems | integer | maxItems sent in request, default is 100 |

View File

@ -17,7 +17,7 @@ Retrieves a list of RecordSets globally in the VinylDNS database based on search
name | type | required? | description | name | type | required? | description |
------------ | ------------- | ----------- | :---------- | ------------ | ------------- | ----------- | :---------- |
recordNameFilter | string | yes | Characters that are part of the record name to search for. The wildcard character `*` is supported, for example `www*`. Omit the wildcard when searching for an exact record name. At least two alphanumeric characters are **required** for searching. | recordNameFilter | string | yes | Characters that are part of the record name to search for. The wildcard character `*` is supported, for example `www*`. Omit the wildcard when searching for an exact record name. At least two alphanumeric characters are **required** for searching. |
recordTypeFilter | Array of RecordType | no | An array of record types to filter for listing record sets. Refer to [recordset mode](../api/recordset-model) for supported types. Invalid record types will be ignored. If left empty or no valid record types are provided, then all record types will be returned. | recordTypeFilter | Array of RecordType | no | An array of record types to filter for listing record sets. Refer to [recordset mode](recordset-model.html) for supported types. Invalid record types will be ignored. If left empty or no valid record types are provided, then all record types will be returned. |
recordOwnerGroupFilter | string | no | Owner group ID for record set. | recordOwnerGroupFilter | string | no | Owner group ID for record set. |
nameSort | string | no | Name sort order for record sets returned by list record set response. Valid values are `ASC` (ascending; default) and `DESC` (descending). | nameSort | string | no | Name sort order for record sets returned by list record set response. Valid values are `ASC` (ascending; default) and `DESC` (descending). |
startFrom | *any* | no | In order to advance through pages of results, the startFrom is set to the `nextId` that is returned on the previous response. It is up to the client to maintain previous pages if the client wishes to advance forward and backward. If not specified, will return the first page of results | startFrom | *any* | no | In order to advance through pages of results, the startFrom is set to the `nextId` that is returned on the previous response. It is up to the client to maintain previous pages if the client wishes to advance forward and backward. If not specified, will return the first page of results |
@ -34,7 +34,7 @@ Code | description |
name | type | description | name | type | description |
------------ | ------------- | :---------- | ------------ | ------------- | :---------- |
recordSets | Array of RecordSets | refer to [recordset model](../api/recordset-model) | recordSets | Array of RecordSets | refer to [recordset model](recordset-model.html) |
startFrom | *any* | startFrom sent in request, will not be returned if not provided | startFrom | *any* | startFrom sent in request, will not be returned if not provided |
nextId | *any* | nextId, used as startFrom parameter of next page request, will not be returned if record sets are exhausted | nextId | *any* | nextId, used as startFrom parameter of next page request, will not be returned if record sets are exhausted |
maxItems | integer | `maxItems` sent in request, default is 100 | maxItems | integer | `maxItems` sent in request, default is 100 |

View File

@ -33,7 +33,7 @@ Code | description |
name | type | description | name | type | description |
------------ | ------------- | :---------- | ------------ | ------------- | :---------- |
zones | Array of [Zones](../api/zone-model#zone-attributes) | An array of the zones found. The zones are sorted alphabetically by zone name. | zones | Array of [Zones](zone-model.html#zone-attributes) | An array of the zones found. The zones are sorted alphabetically by zone name. |
startFrom | *any* | (optional) The startFrom parameter that was sent in on the HTTP request. Will not be present if the startFrom parameter was not sent | startFrom | *any* | (optional) The startFrom parameter that was sent in on the HTTP request. Will not be present if the startFrom parameter was not sent |
nextId | *any* | (optional) The identifier to be passed in as the *startFrom* parameter to retrieve the next page of results. If there are no results left, this field will not be present.| nextId | *any* | (optional) The identifier to be passed in as the *startFrom* parameter to retrieve the next page of results. If there are no results left, this field will not be present.|
maxItems | int | The maxItems parameter that was sent in the HTTP request. This will be 100 if not sent. | maxItems | int | The maxItems parameter that was sent in the HTTP request. This will be 100 if not sent. |

View File

@ -16,12 +16,12 @@ section: "api"
#### MEMBERSHIP BREAKDOWN #### MEMBERSHIP BREAKDOWN
Every zone can be connected to by only one group in VinylDNS. That initial group will be the admin group for that zone, Every zone can be connected to by only one group in VinylDNS. That initial group will be the admin group for that zone,
which can be changed later on in a [Zone Update](../api/update-zone). Every member of the admin group which can be changed later on in a [Zone Update](update-zone.html). Every member of the admin group
will be an admin of that zone, and can preform zone syncs, zone updates, zone deletes, and record set changes regardless will be an admin of that zone, and can preform zone syncs, zone updates, zone deletes, and record set changes regardless
of any Access Control Rules set on them. of any Access Control Rules set on them.
<br><br> <br><br>
While users in the admin group will have complete zone access, further users can be given limited membership through [Zone While users in the admin group will have complete zone access, further users can be given limited membership through [Zone
ACL Rules](../api/zone-model#zone-acl-rule-attr) ACL Rules](zone-model.html#zone-acl-rule-attr)
#### GROUP ATTRIBUTES <a id="group-attributes"></a> #### GROUP ATTRIBUTES <a id="group-attributes"></a>

View File

@ -58,7 +58,7 @@ Current supported record types are: A, AAAA, CNAME, DS, MX, NAPTR, NS, PTR, SOA,
Each individual record encodes its data in a record data object, in which each record type has different required attributes Each individual record encodes its data in a record data object, in which each record type has different required attributes
<br><br> <br><br>
SOA records and NS origin records (record with the same name as the zone) are currently read-only and cannot be created, updated or deleted. SOA records and NS origin records (record with the same name as the zone) are currently read-only and cannot be created, updated or deleted.
Non-origin NS records can be created or updated for [approved name servers](../operator/config-api#additional-configuration-settings) only. Any non-origin NS record can be deleted. Non-origin NS records can be created or updated for [approved name servers](../operator/config-api.html#additional-configuration-settings) only. Any non-origin NS record can be deleted.
record type | attribute | type | record type | attribute | type |
------------ | :---------- | :---------- | ------------ | :---------- | :---------- |

View File

@ -9,7 +9,7 @@ section: "api"
Manually rejects a batch change in pending review status given the batch change ID, resulting in immediate failure. Only Manually rejects a batch change in pending review status given the batch change ID, resulting in immediate failure. Only
system administrators (ie. support or super user) can manually review a batch change. system administrators (ie. support or super user) can manually review a batch change.
Note: If [manual review is disabled](../../operator/config-api#manual-review) in the VinylDNS instance, Note: If [manual review is disabled](../operator/config-api.html#manual-review) in the VinylDNS instance,
users trying to access this endpoint will encounter a **404 Not Found** response since it will not exist. users trying to access this endpoint will encounter a **404 Not Found** response since it will not exist.
@ -51,8 +51,8 @@ userId | string | The unique identifier of the user that created the
userName | string | The username of the user that created the batch change. | userName | string | The username of the user that created the batch change. |
comments | string | Conditional: comments about the batch change, if provided. | comments | string | Conditional: comments about the batch change, if provided. |
createdTimestamp | date-time | The timestamp (UTC) when the batch change was created. | createdTimestamp | date-time | The timestamp (UTC) when the batch change was created. |
changes | Array of SingleChange | Array of single changes within a batch change. A *SingleChange* can either be a [SingleAddChange](../api/batchchange-model#singleaddchange-attributes) or a [SingleDeleteRRSetChange](../api/batchchange-model#singledeleterrsetchange-). | changes | Array of SingleChange | Array of single changes within a batch change. A *SingleChange* can either be a [SingleAddChange](batchchange-model.html#singleaddchange-attributes) or a [SingleDeleteRRSetChange](batchchange-model.html#singledeleterrsetchange-attributes). |
status | BatchChangeStatus | [Status of the batch change](../api/batchchange-model#batchchange-attributes). | status | BatchChangeStatus | [Status of the batch change](batchchange-model.html#batchchange-attributes). |
id | string | The unique identifier for this batch change. | id | string | The unique identifier for this batch change. |
ownerGroupId | string | Conditional: Record ownership assignment, if provided. | ownerGroupId | string | Conditional: Record ownership assignment, if provided. |
approvalStatus | BatchChangeApprovalStatus | Whether the batch change is currently awaiting manual review. Will be **Rejected** status when rejecting. | approvalStatus | BatchChangeApprovalStatus | Whether the batch change is currently awaiting manual review. Will be **Rejected** status when rejecting. |

View File

@ -41,7 +41,7 @@ Code | description |
name | type | description | name | type | description |
------------ | ------------- | :---------- | ------------ | ------------- | :---------- |
status | string | Sync status | status | string | Sync status |
zone | map | Refer to [zone model](../api/zone-model) | zone | map | Refer to [zone model](zone-model.html) |
created | string | The timestamp (UTC) the sync was initiated | created | string | The timestamp (UTC) the sync was initiated |
changeType | string | Type of change requested (Create, Update, Sync, Delete); in this case Sync | changeType | string | Type of change requested (Create, Update, Sync, Delete); in this case Sync |
userId | string | The user ID that initiated the change | userId | string | The user ID that initiated the change |

View File

@ -22,8 +22,8 @@ id | string | yes | the id of the recordset being upda
name | string | yes | the name of the recordset being updated | name | string | yes | the name of the recordset being updated |
type | string | yes | the type of recordset | type | string | yes | the type of recordset |
ttl | integer | yes | the TTL in seconds | ttl | integer | yes | the TTL in seconds |
records | array of record data | yes | record data for recordset, see [RecordSet Model](../api/recordset-model) | records | array of record data | yes | record data for recordset, see [RecordSet Model](recordset-model.html) |
ownerGroupId | string | sometimes* | Record ownership assignment, applicable if the recordset is in a [shared zone](../api/zone-model#shared-zones) | ownerGroupId | string | sometimes* | Record ownership assignment, applicable if the recordset is in a [shared zone](zone-model.html#shared-zones) |
*Note: If a recordset has an ownerGroupId you must include that value in the update request, otherwise the update will remove the ownerGroupId value *Note: If a recordset has an ownerGroupId you must include that value in the update request, otherwise the update will remove the ownerGroupId value

View File

@ -14,7 +14,7 @@ Updates an existing zone that has already been connected to. Used to update the
#### HTTP REQUEST PARAMS #### HTTP REQUEST PARAMS
**zone fields**, refer to [zone model](../api/zone-model) | **zone fields**, refer to [zone model](zone-model.html) |
#### EXAMPLE HTTP REQUEST #### EXAMPLE HTTP REQUEST
@ -54,7 +54,7 @@ Code | description |
name | type | description | name | type | description |
------------ | ------------- | :---------- | ------------ | ------------- | :---------- |
zone | map | Zone sent with update request, refer to [zone model](../api/zone-model) | zone | map | Zone sent with update request, refer to [zone model](zone-model.html) |
userId | string | The user id that initiated the change | userId | string | The user id that initiated the change |
changeType | string | Type of change requested (Create, Update, Sync, Delete); in this case Update | changeType | string | Type of change requested (Create, Update, Sync, Delete); in this case Update |
created | string | The timestamp (UTC) the change was initiated | created | string | The timestamp (UTC) the change was initiated |

View File

@ -97,7 +97,7 @@ accessLevel | string | Access level of the user requesting the zone. Curr
#### ZONE ACL RULE ATTRIBUTES <a id="zone-acl-rule-attr"></a> #### ZONE ACL RULE ATTRIBUTES <a id="zone-acl-rule-attr"></a>
ACL Rules are used to govern user and group access to record operations on a zone. ACL Rules can be associated with a specific user, or all users in a specified group. If neither a user _or_ a group is attached to an ACL rule, then the rule applies to _all_ users in the system. ACL Rules are used to govern user and group access to record operations on a zone. ACL Rules can be associated with a specific user, or all users in a specified group. If neither a user _or_ a group is attached to an ACL rule, then the rule applies to _all_ users in the system.
<br><br> <br><br>
Use the [Zone Update](../api/update-zone) endpoint to update the **acl** attribute of the zone Use the [Zone Update](update-zone.html) endpoint to update the **acl** attribute of the zone
> **Important!** If a user is mentioned on an ACL Rule directly, or is a member of a group that is mentioned on an ACL Rule, that user will be able to see the zone. > **Important!** If a user is mentioned on an ACL Rule directly, or is a member of a group that is mentioned on an ACL Rule, that user will be able to see the zone.
@ -261,4 +261,4 @@ key | string | The TSIG secret key used to sign requests when com
### SHARED ZONES <a id="shared-zones"></a> ### SHARED ZONES <a id="shared-zones"></a>
Shared zones allow for a more open management of records in VinylDNS. Zone administrators can assign ownership of records to groups. Any user in VinylDNS can claim existing unowned records in shared zones, as well as create records in those zones. Once a record is owned, only users in the record owner group, the zone administrators and those with relevant ACL rules can modify or delete the record. The [batch change API endpoint](../api/create-batchchange) and [batch change area of the portal](../portal/batch-changes) are where users can create new records in shared zones, modify records they own, or claim unowned records. If a zone's shared state changes to false the record ownership access is no longer applicable. Shared zones allow for a more open management of records in VinylDNS. Zone administrators can assign ownership of records to groups. Any user in VinylDNS can claim existing unowned records in shared zones, as well as create records in those zones. Once a record is owned, only users in the record owner group, the zone administrators and those with relevant ACL rules can modify or delete the record. The [batch change API endpoint](create-batchchange.html) and [batch change area of the portal](../portal/batch-changes.html) are where users can create new records in shared zones, modify records they own, or claim unowned records. If a zone's shared state changes to false the record ownership access is no longer applicable.

View File

@ -87,4 +87,4 @@ If you need new API credentials select *Regenerate Credentials*. This will inval
If you use any VinylDNS tools beyond the portal you will need to provide those tools with your new credentials. If you use any VinylDNS tools beyond the portal you will need to provide those tools with your new credentials.
### 9. How are requests authenticated to the VinylDNS API? <a id="9"></a> ### 9. How are requests authenticated to the VinylDNS API? <a id="9"></a>
Refer to [API Authentication](../api/auth-mechanism). Refer to [API Authentication](api/auth-mechanism.html).

View File

@ -7,7 +7,7 @@ position: 1
# Welcome # Welcome
![VinylDNS logo](/img/vinyldns-fulllogoDARK-300.png) ![VinylDNS logo](../img/vinyldns-fulllogoDARK-300.png)
VinylDNS is a vendor agnostic front-end for enabling self-service DNS and streamlining DNS operations. It is designed to integrate with your existing DNS infrastructure, and provides extensibility to fit your installation. VinylDNS is a vendor agnostic front-end for enabling self-service DNS and streamlining DNS operations. It is designed to integrate with your existing DNS infrastructure, and provides extensibility to fit your installation.
VinylDNS manages millions of DNS records supporting thousands of engineers in production at [Comcast](http://www.comcast.com). VinylDNS manages millions of DNS records supporting thousands of engineers in production at [Comcast](http://www.comcast.com).

View File

@ -77,9 +77,9 @@ There are a couple of implementation-dependent settings that need to be specifie
* `messages-per-poll`: Number of messages retrieved in a single queue receive request. Valid values are 1 through 10 (default). * `messages-per-poll`: Number of messages retrieved in a single queue receive request. Valid values are 1 through 10 (default).
* `polling-interval`: Interval to delay between each poll for messages. * `polling-interval`: Interval to delay between each poll for messages.
If using SQS, be sure to follow the [AWS SQS Setup Guide](setup-sqs) first to get the values you need to configure here. If using SQS, be sure to follow the [AWS SQS Setup Guide](setup-sqs.html) first to get the values you need to configure here.
If using MySQL, follow the [MySQL Setup Guide](setup-mysql) first to get the values you need to configure here. If using MySQL, follow the [MySQL Setup Guide](setup-mysql.html) first to get the values you need to configure here.
The following in a sample SQS config: The following in a sample SQS config:
@ -167,9 +167,9 @@ You must have all of the following required API repositories configured in exact
| ZoneChange | X | X | | ZoneChange | X | X |
If using MySQL, follow the [MySQL Setup Guide](setup-mysql) first to get the values you need to configure here. If using MySQL, follow the [MySQL Setup Guide](setup-mysql.html) first to get the values you need to configure here.
If using DynamoDB, follow the [AWS DynamoDB Setup Guide](setup-dynamodb) first to get the values you need to configure here. If using DynamoDB, follow the [AWS DynamoDB Setup Guide](setup-dynamodb.html) first to get the values you need to configure here.
```yaml ```yaml
@ -334,7 +334,7 @@ VinylDNS has three ways of indicating zone connections:
1. Global default connection applies to all zones unless overridden by one of the following connections. This configuration is required. 1. Global default connection applies to all zones unless overridden by one of the following connections. This configuration is required.
2. Backends allows you to specify zone connection information for an individual zone by choosing a pre-configured zone connection. This configuration is optional. 2. Backends allows you to specify zone connection information for an individual zone by choosing a pre-configured zone connection. This configuration is optional.
3. Zone level override allows you to specify zone update and transfer connection information _for each zone_. More information is in the [Zone Model](../api/zone-model). 3. Zone level override allows you to specify zone update and transfer connection information _for each zone_. More information is in the [Zone Model](../api/zone-model.html).
VinylDNS has **2** connections for each zone: VinylDNS has **2** connections for each zone:
@ -511,8 +511,11 @@ sns {
signing-region = "us-east-1" signing-region = "us-east-1"
} }
} }
```
### Batch Manual Review Enabled <a id="manual-review" /> ### Batch Manual Review Enabled <a id="manual-review" />
[manual-review]: #manual-review
Configuration setting that determines whether batch changes with non-fatal errors can be reviewed rather than failing immediately. Configuration setting that determines whether batch changes with non-fatal errors can be reviewed rather than failing immediately.
When enabling manual review, the expectation is that a DNS technician is actively querying and addressing batch change When enabling manual review, the expectation is that a DNS technician is actively querying and addressing batch change
requests that are in a manual review state. If your process flow does not accommodate this expectation, we advise disabling requests that are in a manual review state. If your process flow does not accommodate this expectation, we advise disabling

View File

@ -18,11 +18,11 @@ The portal configuration is much smaller than the API Server.
- [Full Example Config](#full-example-config) - [Full Example Config](#full-example-config)
## Database Configuration ## Database Configuration
VinylDNS supports both DynamoDB and MySQL backends (see [API Database Configuration](config-api#database-configuration)). VinylDNS supports both DynamoDB and MySQL backends (see [API Database Configuration](config-api.html#database-configuration)).
If using DynamoDB, follow the [AWS DynamoDB Setup Guide](setup-dynamodb) first to get the values you need to configure here. If using DynamoDB, follow the [AWS DynamoDB Setup Guide](setup-dynamodb.html) first to get the values you need to configure here.
If using MySQL, follow the [MySQL Setup Guide](setup-mysql) first to get the values you need to configure here. If using MySQL, follow the [MySQL Setup Guide](setup-mysql.html) first to get the values you need to configure here.
The Portal uses the following tables: The Portal uses the following tables:
@ -139,7 +139,7 @@ vinyldns {
``` ```
## LDAP ## LDAP
Be sure to follow the [LDAP Setup Guide](setup-ldap) first to get the values you need to configure here. Be sure to follow the [LDAP Setup Guide](setup-ldap.html) first to get the values you need to configure here.
LDAP configuration connects VinylDNS to your Directory where user information is stored. LDAP configuration connects VinylDNS to your Directory where user information is stored.

View File

@ -0,0 +1,13 @@
---
layout: docs
title: "Operator Guide"
section: "operator_menu"
position: 3
---
# Operator Guide
This operator guide will help administrators install and operate VinylDNS API and Portal.
1. [Setup the pre-requisite systems](pre.html) - VinylDNS has several external dependencies that are required in order to operate.
2. [Setup the VinylDNS API server](setup-api.html)
3. [Setup the VinylDNS Portal server](setup-portal.html)

View File

@ -30,7 +30,7 @@ for zone transfers.
Connections (DDNS and Transfer) can be setup Connections (DDNS and Transfer) can be setup
* `per zone` - every zone can override the global default by specifying its own connections. * `per zone` - every zone can override the global default by specifying its own connections.
* `global default` - assuming you are managing a primary system, you can [configure default zone connections](config-api#default-zone-connections). * `global default` - assuming you are managing a primary system, you can [configure default zone connections](config-api.html#default-zone-connections).
When no zone connection is specified on a zone, the global defaults will be used. When no zone connection is specified on a zone, the global defaults will be used.
## Database ## Database
@ -77,7 +77,7 @@ to use DynamoDB as the query interface is limited. A SQL interface with `JOIN`s
It should also be noted that all of the repositories have also been implemented in MySQL despite most currently running It should also be noted that all of the repositories have also been implemented in MySQL despite most currently running
in DynamoDB in our VinylDNS instance. in DynamoDB in our VinylDNS instance.
Review the [Setup MySQL Guide](setup-mysql) for more information. Review the [Setup MySQL Guide](setup-mysql.html) for more information.
### AWS DynamoDB ### AWS DynamoDB
VinylDNS has gone through several architecture evolutions. Along the way, DynamoDB was chosen as the data store due to VinylDNS has gone through several architecture evolutions. Along the way, DynamoDB was chosen as the data store due to
@ -97,7 +97,7 @@ VinylDNS has implemented DynamoDB for the following repositories:
Currently using DynamoDB would also require the user to either use MySQL for the batch change and zone repositories or also provide Currently using DynamoDB would also require the user to either use MySQL for the batch change and zone repositories or also provide
an implementation for those repositories in a different data store. an implementation for those repositories in a different data store.
Review the [Setup AWS DynamoDB Guide](setup-dynamodb) for more information. Review the [Setup AWS DynamoDB Guide](setup-dynamodb.html) for more information.
## Message Queues ## Message Queues
Most operations that take place in VinylDNS use a message queue. These operations require high-availability, fault-tolerance Most operations that take place in VinylDNS use a message queue. These operations require high-availability, fault-tolerance
@ -119,13 +119,13 @@ bottlenecks in processing could cause an increase in heap pressure in the API no
1. Price - SQS is very reasonably priced. Comcast operates multiple message queues for different environments (dev, staging, prod, etc). 1. Price - SQS is very reasonably priced. Comcast operates multiple message queues for different environments (dev, staging, prod, etc).
The price to use SQS is in the single digit dollars per month. VinylDNS can be tuned to run exclusively in the _free tier_. The price to use SQS is in the single digit dollars per month. VinylDNS can be tuned to run exclusively in the _free tier_.
Review the [Setup AWS SQS Guide](setup-sqs) for more information. Review the [Setup AWS SQS Guide](setup-sqs.html) for more information.
### MySQL ### MySQL
VinylDNS has also implemented a message queue using MySQL, which incorporates the features that we currently utilize through AWS SQS VinylDNS has also implemented a message queue using MySQL, which incorporates the features that we currently utilize through AWS SQS
such as changing visibility timeout and re-queuing operations. such as changing visibility timeout and re-queuing operations.
Review the [Setup MySQL Guide](setup-mysql) for more information. Review the [Setup MySQL Guide](setup-mysql.html) for more information.
## LDAP ## LDAP
VinylDNS uses LDAP in order to authenticate users in the **Portal**. LDAP is **not** used in the API, instead the API uses VinylDNS uses LDAP in order to authenticate users in the **Portal**. LDAP is **not** used in the API, instead the API uses
@ -134,4 +134,4 @@ its own user and group database for authentication.
When a user first logs into VinylDNS, their user information (first name, last name, user name, email) will be pulled from When a user first logs into VinylDNS, their user information (first name, last name, user name, email) will be pulled from
LDAP, and stored in the `UserRepository`. Credentials will also be generated for the user and stored encrypted in the `UserRepository`. LDAP, and stored in the `UserRepository`. Credentials will also be generated for the user and stored encrypted in the `UserRepository`.
Review the [Setup LDAP Guide](setup-ldap) for more information Review the [Setup LDAP Guide](setup-ldap.html) for more information

View File

@ -7,11 +7,11 @@ section: "operator_menu"
# Setup API Server # Setup API Server
The API Server is the main run-time for VinylDNS. To setup the API server, follow these steps: The API Server is the main run-time for VinylDNS. To setup the API server, follow these steps:
1. [Pre-requisites](pre) 1. [Pre-requisites](pre.html)
1. [Setup AWS DynamoDB](setup-dynamodb) 1. [Setup AWS DynamoDB](setup-dynamodb.html)
1. [Setup MySQL](setup-mysql) 1. [Setup MySQL](setup-mysql.html)
1. [Setup AWS SQS](setup-sqs) 1. [Setup AWS SQS](setup-sqs.html)
1. [Configure API Server](config-api) 1. [Configure API Server](config-api.html)
1. [Using the API Docker Image](#using-the-api-docker-image) 1. [Using the API Docker Image](#using-the-api-docker-image)
## Using the API Docker Image ## Using the API Docker Image

View File

@ -7,7 +7,7 @@ section: "operator_menu"
# Setup AWS DynamoDB # Setup AWS DynamoDB
[AWS DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) is currently the default database [AWS DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) is currently the default database
for _most_ of the data that is stored in our instance of VinylDNS. However, all table implementations are available in MySQL for _most_ of the data that is stored in our instance of VinylDNS. However, all table implementations are available in MySQL
(see [Setup MySQL Guide](setup-mysql) for more information). The following tables are present in DynamoDB in our instance of VinylDNS: (see [Setup MySQL Guide](setup-mysql.html) for more information). The following tables are present in DynamoDB in our instance of VinylDNS:
* [RecordSetChange](#recordsetchange-table) - audit history of all changes made to records * [RecordSetChange](#recordsetchange-table) - audit history of all changes made to records
* [Group](#group-table) - group information, including name, email and description * [Group](#group-table) - group information, including name, email and description
@ -37,10 +37,10 @@ the throughput very low and operate in the "almost" free-tier.
## Configuring DynamoDB ## Configuring DynamoDB
Before you can configure DynamoDB, make note of the AWS account (access key and secret access key) as well as the Before you can configure DynamoDB, make note of the AWS account (access key and secret access key) as well as the
DynamoDB endpoint (region) that you will be using. Follow the [API Database Configuration](config-api#database-configuration) DynamoDB endpoint (region) that you will be using. Follow the [API Database Configuration](config-api.html#database-configuration)
to complete the setup for the API. to complete the setup for the API.
You also need to configure DynamoDB for the portal [Portal Database Configuration](config-portal#database-configuration) You also need to configure DynamoDB for the portal [Portal Database Configuration](config-portal.html#database-configuration)
### RecordSet Table ### RecordSet Table

View File

@ -12,7 +12,7 @@ VinylDNS. VinylDNS does support service accounts, which are useful for automati
user to be created is to login to the portal. Implementers can choose to out-of-band manage the VinylDNS repositories.** user to be created is to login to the portal. Implementers can choose to out-of-band manage the VinylDNS repositories.**
There are no steps necessary for setup than having a Directory that can communicate via LDAP, and a user (account) that There are no steps necessary for setup than having a Directory that can communicate via LDAP, and a user (account) that
can read data from the Directory. Once you have that information, proceed to the [Portal Configuration](config-portal). can read data from the Directory. Once you have that information, proceed to the [Portal Configuration](config-portal.html).
**Considerations** **Considerations**
You _should_ communicate to your Directory over LDAP using TLS. To do so, the SSL certs should be installed You _should_ communicate to your Directory over LDAP using TLS. To do so, the SSL certs should be installed
@ -21,7 +21,7 @@ a java key store when it starts up.
## Configuring LDAP ## Configuring LDAP
Before you can configure LDAP, make note of the host, username, and password that you will be using. Before you can configure LDAP, make note of the host, username, and password that you will be using.
Follow the [Portal Configuration](config-portal) to complete the setup. Follow the [Portal Configuration](config-portal.html) to complete the setup.
## Syncing users against LDAP ## Syncing users against LDAP
VinylDNS has implemented an optional feature to perform a recurring LDAP lookup against all non-test users in the database and perform VinylDNS has implemented an optional feature to perform a recurring LDAP lookup against all non-test users in the database and perform

View File

@ -29,4 +29,4 @@ pool.
## Configuring MySQL ## Configuring MySQL
Before you can configure MySQL, make note of the host, username, and password that you will be using. Before you can configure MySQL, make note of the host, username, and password that you will be using.
Follow the [API Database Configuration](config-api#database-configuration) to complete the setup. Follow the [API Database Configuration](config-api.html#database-configuration) to complete the setup.

View File

@ -7,12 +7,12 @@ section: "operator_menu"
# Setup the Portal Server # Setup the Portal Server
The Portal Server is the web UI for VinylDNS. To setup the Portal server, follow these steps: The Portal Server is the web UI for VinylDNS. To setup the Portal server, follow these steps:
1. [Setup API Server](setup-api) 1. [Setup API Server](setup-api.html)
1. [Setup LDAP](setup-ldap) 1. [Setup LDAP](setup-ldap.html)
1. [Configure Portal Server](config-portal) 1. [Configure Portal Server](config-portal.html)
1. [Using the Portal Docker Image](#using-the-portal-docker-image) 1. [Using the Portal Docker Image](#using-the-portal-docker-image)
Once you have you pre-requisites ready, review the [Portal Configuration Guide](config-portal) for how to build out Once you have you pre-requisites ready, review the [Portal Configuration Guide](config-portal.html) for how to build out
your configuration file. your configuration file.
# Using the Portal Docker Image # Using the Portal Docker Image
@ -24,7 +24,7 @@ purposes.
## Volume mounts ## Volume mounts
* `/opt/docker/lib_extra` - place here additional jar files that need to be loaded into the classpath when the application starts up. * `/opt/docker/lib_extra` - place here additional jar files that need to be loaded into the classpath when the application starts up.
This is used for "plugins" that are proprietary or not part of the standard build. All jar files here will be placed on the class path. This is used for "plugins" that are proprietary or not part of the standard build. All jar files here will be placed on the class path.
* `/opt/docker/conf/application.conf` - to override default configuration settings. Follow the [Portal Configuration Guide](config-portal) * `/opt/docker/conf/application.conf` - to override default configuration settings. Follow the [Portal Configuration Guide](config-portal.html)
* `/opt/docker/conf/application.ini` - to pass additional JVM options * `/opt/docker/conf/application.ini` - to pass additional JVM options
* `/opt/docker/conf/trustStore.jks` - to make available a custom trustStore, which has to be set in `/opt/docker/conf/application.ini` as `-Djavax.net.ssl.trustStore=/opt/docker/conf/trustStore.jks` * `/opt/docker/conf/trustStore.jks` - to make available a custom trustStore, which has to be set in `/opt/docker/conf/application.ini` as `-Djavax.net.ssl.trustStore=/opt/docker/conf/trustStore.jks`

View File

@ -34,4 +34,4 @@ The following SQS Queue Attributes are recommended (these are in AWS when you cr
## Configuring SQS ## Configuring SQS
Before you can configure SQS, make note of the AWS account (access key and secret access key) as well as the Before you can configure SQS, make note of the AWS account (access key and secret access key) as well as the
SQS Queue Url that you will be using. Follow the [SQS Configuration](config-api#aws-sqs) to complete the setup. SQS Queue Url that you will be using. Follow the [SQS Configuration](config-api.html#queue-configuration) to complete the setup.

View File

@ -4,9 +4,9 @@ title: "Connect to your Zone"
section: "portal_menu" section: "portal_menu"
--- ---
## Connect to your Zone <a id="connectingZone"></a> ## Connect to your Zone <a id="connectingZone"></a>
Once your zone is [setup for use with VinylDNS](../faq#1), you can use the VinylDNS portal to connect to it. Once your zone is [setup for use with VinylDNS](../faq.html#1), you can use the VinylDNS portal to connect to it.
1. If you don't already have an admin group in VinylDNS for your zone select the Groups link in the navigation and [create an admin group](create-a-group) for your zone. Members of the group will have full access to the zone. See [Manage Access](manage-access) for more details. 1. If you don't already have an admin group in VinylDNS for your zone select the Groups link in the navigation and [create an admin group](create-a-group.html) for your zone. Members of the group will have full access to the zone. See [Manage Access](manage-access.html) for more details.
1. Select the Zones link from the navigation, then click the *Connect* button. This will show the *Connect to a Zone* 1. Select the Zones link from the navigation, then click the *Connect* button. This will show the *Connect to a Zone*
form. [![Zones main screenshot](../img/portal/zone-main.png){: .screenshot}](../img/portal/zone-main.png) [![Connect to zone form screenshot](../img/portal/connect-to-zone.png){: .screenshot}](../img/portal/connect-to-zone.png) form. [![Zones main screenshot](../img/portal/zone-main.png){: .screenshot}](../img/portal/zone-main.png) [![Connect to zone form screenshot](../img/portal/connect-to-zone.png){: .screenshot}](../img/portal/connect-to-zone.png)
1. Enter the full name of the zone, example "test.sys.example.com" 1. Enter the full name of the zone, example "test.sys.example.com"
@ -14,8 +14,8 @@ Once your zone is [setup for use with VinylDNS](../faq#1), you can use the Vinyl
email for the team that owns the zone. email for the team that owns the zone.
1. Select the admin group for the zone. 1. Select the admin group for the zone.
1. If you do not have any custom TSIG keys, you can leave the connection information empty. 1. If you do not have any custom TSIG keys, you can leave the connection information empty.
1. If you do have custom TSIG keys, read the section on [Understand Connections](connections). 1. If you do have custom TSIG keys, read the section on [Understand Connections](connections.html).
1. Click the *Connect* button at the bottom of the form. 1. Click the *Connect* button at the bottom of the form.
1. You may have to click the <i>Refresh</i> button from the zone list to see your new zone. 1. You may have to click the <i>Refresh</i> button from the zone list to see your new zone.
[![Created zone listed screenshot](../img/portal/zone-list.png){: .screenshot}](../img/portal/zone-list.png) [![Created zone listed screenshot](../img/portal/zone-list.png){: .screenshot}](../img/portal/zone-list.png)
1. If you see error messages, please consult the [FAQ](/faq). 1. If you see error messages, please consult the [FAQ](../faq.html).

View File

@ -15,7 +15,7 @@ your zone.
If you have an existing TSIG key that you are using for issuing DDNS updates to DNS, If you have an existing TSIG key that you are using for issuing DDNS updates to DNS,
and you wish to continue to use it, you *must* request that your zone be setup to and you wish to continue to use it, you *must* request that your zone be setup to
allow transfers from VinylDNS. **Note**: If you make any changes *outside* of VinylDNS they will not be reflected in VinylDNS unless you manually [sync the zone](manage-records#sync-zones). allow transfers from VinylDNS. **Note**: If you make any changes *outside* of VinylDNS they will not be reflected in VinylDNS unless you manually [sync the zone](manage-records.html#sync-zones).
If you have an existing TSIG key that you are using for issuing DDNS updates, If you have an existing TSIG key that you are using for issuing DDNS updates,
and you no longer need the key, please contact your VinylDNS administrators to ensure that the key is *revoked* and the zone is setup with the default VinylDNS TSIG key. Once and you no longer need the key, please contact your VinylDNS administrators to ensure that the key is *revoked* and the zone is setup with the default VinylDNS TSIG key. Once

View File

@ -4,7 +4,7 @@ title: "Credentials"
section: "portal_menu" section: "portal_menu"
--- ---
## Credentials ## Credentials
In order to use [tooling](/tools) to access VinylDNS, all users must download their credentials from the VinylDNS In order to use [tooling](../tools.html) to access VinylDNS, all users must download their credentials from the VinylDNS
portal. The credentials are located in the User Menu in the top right corner of the site after login. portal. The credentials are located in the User Menu in the top right corner of the site after login.
### Regenerate Credentials ### Regenerate Credentials

View File

@ -10,7 +10,7 @@ DNS Changes is an alternative to submitting individual RecordSet changes and pro
* The ability to include records of multiple record types across multiple zones. * The ability to include records of multiple record types across multiple zones.
* Input names are entered as fully-qualified domain names (or IP addresses for **PTR** records), so users don't have to think in record/zone context. * Input names are entered as fully-qualified domain names (or IP addresses for **PTR** records), so users don't have to think in record/zone context.
**Note**: DNS Change is portal-only terminology. The API equivalent is [batch change](../api/batchchange-model). **Note**: DNS Change is portal-only terminology. The API equivalent is [batch change](../api/batchchange-model.html).
#### Access #### Access
* Access permissions will follow existing rules (admin group or ACL access). Note that an update (delete and add of the same record name *or* delete of single entry of multi-record DNS record set, zone and record type combination) requires **Write** or **Delete** access. * Access permissions will follow existing rules (admin group or ACL access). Note that an update (delete and add of the same record name *or* delete of single entry of multi-record DNS record set, zone and record type combination) requires **Write** or **Delete** access.

View File

@ -6,10 +6,10 @@ section: "portal_menu"
## Groups ## Groups
Groups are the primary way users are granted access to zones. Users can create groups for two purposes in VinylDNS: to be the zone admin group for a zone or to be assigned more limited access via [ACL rules](manage-access). Every zone in VinylDNS must have a zone admin group assigned. VinylDNS does not currently integrate with any services to generate pre-defined zone admin groups. Groups are the primary way users are granted access to zones. Users can create groups for two purposes in VinylDNS: to be the zone admin group for a zone or to be assigned more limited access via [ACL rules](manage-access.html). Every zone in VinylDNS must have a zone admin group assigned. VinylDNS does not currently integrate with any services to generate pre-defined zone admin groups.
* [Create a group](create-a-group) * [Create a group](create-a-group.html)
* [Manage membership](manage-membership) * [Manage membership](manage-membership.html)
[![Groups main "My Groups" tab screenshot](../img/portal/groups-main.png){:.screenshot}](../img/portal/groups-main.png) [![Groups main "My Groups" tab screenshot](../img/portal/groups-main.png){:.screenshot}](../img/portal/groups-main.png)

View File

@ -16,23 +16,23 @@ The VinylDNS portal is the primary user interface for interacting with VinylDNS.
The User Menu is located in the top right corner of the portal and accessed by selecting your username. It contains a *Logout* link to sign out of the portal and the *Download Credentials* link. The User Menu is located in the top right corner of the portal and accessed by selecting your username. It contains a *Logout* link to sign out of the portal and the *Download Credentials* link.
#### Credentials #### Credentials
In order to use [tooling](/tools) to access VinylDNS, all users must download their credentials from the VinylDNS portal. In order to use [tooling](../tools.html) to access VinylDNS, all users must download their credentials from the VinylDNS portal.
[Learn more](credentials) [Learn more](credentials.html)
### Zones ### Zones
The Zones section of the portal is for managing DNS zones and records. This area also includes more granular management of user abilities. The Zones section of the portal is for managing DNS zones and records. This area also includes more granular management of user abilities.
To access Zones in the portal select the Zones link in the left column navigation. To access Zones in the portal select the Zones link in the left column navigation.
Access to individual zones in this part of the portal is limited to zone administrators and users with explicit permissions. Access to individual zones in this part of the portal is limited to zone administrators and users with explicit permissions.
[Learn More](zones) [Learn More](zones.html)
### Groups ### Groups
The Groups section of the portal is for managing high level user access and abilities. To access Groups in the portal select the Groups link in the left column navigation. The Groups section of the portal is for managing high level user access and abilities. To access Groups in the portal select the Groups link in the left column navigation.
[Learn More](groups) [Learn More](groups.html)
### DNS Changes ### DNS Changes
The DNS Changes section of the portal allows users to implement multiple record changes simultaneously and across different zones. To access DNS Changes in the portal select the DNS Changes link in the left column navigation. The DNS Changes section of the portal allows users to implement multiple record changes simultaneously and across different zones. To access DNS Changes in the portal select the DNS Changes link in the left column navigation.
[Learn More](dns-changes) [Learn More](dns-changes.html)

View File

@ -6,7 +6,7 @@ section: "portal_menu"
## Manage Access to Zones and Records <a id="access"></a> ## Manage Access to Zones and Records <a id="access"></a>
### Full Access ### Full Access
Members of a zone admin group have *full* access to all records and permissions in the zone. Each zone is limited to one admin group. Typically, this should be a limited set of Members of a zone admin group have *full* access to all records and permissions in the zone. Each zone is limited to one admin group. Typically, this should be a limited set of
users. If you wish to add other users to a group you can do so in the [Groups](manage-membership) section of the portal. users. If you wish to add other users to a group you can do so in the [Groups](manage-membership.html) section of the portal.
### Limited Access ### Limited Access
If you don't want a user to have full access to a zone you can use ACL rules to give them more granular access. With ACL rules, the zone admins can grant individual users or groups read, write or delete access to all records in the zone, or a subset of record names and/or types. If you don't want a user to have full access to a zone you can use ACL rules to give them more granular access. With ACL rules, the zone admins can grant individual users or groups read, write or delete access to all records in the zone, or a subset of record names and/or types.
@ -19,4 +19,4 @@ If you don't want a user to have full access to a zone you can use ACL rules to
[![ACL rule form screenshot](../img/portal/create-acl-rule.png){:.screenshot}](../img/portal/create-acl-rule.png) [![ACL rule form screenshot](../img/portal/create-acl-rule.png){:.screenshot}](../img/portal/create-acl-rule.png)
### <span class="important">**NEW**</span> Shared Zones ### <span class="important">**NEW**</span> Shared Zones
The shared zone feature is designed to allow more granular record ownership and management in a flexible way. Super users can mark zones as 'shared' which then allow any users to create new records or claim existing unowned records in zones. Zone administrators can assign records in a shared zone to specific groups by designating a group when creating the record set or when updating existing records in the portal. Users who are not zone administrators can create new records in shared zones, or claim and modify unowned records in shared zones, through the [DNS Changes](dns-changes) interface. The shared zone feature is designed to allow more granular record ownership and management in a flexible way. Super users can mark zones as 'shared' which then allow any users to create new records or claim existing unowned records in zones. Zone administrators can assign records in a shared zone to specific groups by designating a group when creating the record set or when updating existing records in the portal. Users who are not zone administrators can create new records in shared zones, or claim and modify unowned records in shared zones, through the [DNS Changes](dns-changes.html) interface.

View File

@ -4,7 +4,7 @@ title: "Manage Records"
section: "portal_menu" section: "portal_menu"
--- ---
## Manage Records <a id="managingRecords"></a> ## Manage Records <a id="managingRecords"></a>
There are currently two ways to manage records in the VinylDNS portal. This covers managing individual records through their associated zone. To manage multiple records at once, possibly across zones, and records in shared zones you can use the [DNS Changes](dns-changes) area of the portal. There are currently two ways to manage records in the VinylDNS portal. This covers managing individual records through their associated zone. To manage multiple records at once, possibly across zones, and records in shared zones you can use the [DNS Changes](dns-changes.html) area of the portal.
#### Access #### Access
Only zone administrators and users with ACL rules can manage records this way. Only zone administrators and users with ACL rules can manage records this way.

View File

@ -16,7 +16,7 @@ section: "portal_menu"
## Manual Review <a id="manual-review" /> ## Manual Review <a id="manual-review" />
If a DNS Change is submitted with only [non-fatal errors](../api/batchchange-errors#non-fatal-errors) you will be notified to either correct those errors or submit your DNS Change for manual review. If a DNS Change is submitted with only [non-fatal errors](../api/batchchange-errors.html#non-fatal-errors) you will be notified to either correct those errors or submit your DNS Change for manual review.
If you submit the DNS Change for manual review a VinylDNS administrator will determine if your request can be approved or if it needs to be rejected. If you submit the DNS Change for manual review a VinylDNS administrator will determine if your request can be approved or if it needs to be rejected.
After the review your DNS Change will include the review details, including the review status, reviewer name, review time and review comment, if provided. After the review your DNS Change will include the review details, including the review status, reviewer name, review time and review comment, if provided.

View File

@ -13,13 +13,13 @@ The All Zones tab is intended as a reference, it includes zones you have access
If needed, you can use the contact information in the list to reach out to the owners of the zones you don't have access to. If needed, you can use the contact information in the list to reach out to the owners of the zones you don't have access to.
**Note** you may have access to specific records in shared zones, but you are not permitted to access those zones in this area. **Note** you may have access to specific records in shared zones, but you are not permitted to access those zones in this area.
Those records are accessible via the [DNS Changes](dns-changes) area of the portal. Those records are accessible via the [DNS Changes](./dns-changes.html) area of the portal.
* [Search Zones](search-zones) * [Search Zones](./search-zones.html)
* [Connect to your zone](connect-to-zone) * [Connect to your zone](connect-to-zone.html)
* [Manage records](manage-records) * [Manage records](manage-records.html)
* [Manage access](manage-access) * [Manage access](manage-access.html)
* [Understand connections](connections) * [Understand connections](connections.html)
[![Zones page - My Zones tab](../img/portal/zones-my-zones.png){:.screenshot}](../img/portal/zones-my-zones.png) [![Zones page - My Zones tab](../img/portal/zones-my-zones.png){:.screenshot}](../img/portal/zones-my-zones.png)

View File

@ -12,6 +12,23 @@
background-color: #123051; background-color: #123051;
} }
#masthead {
background-attachment: scroll;
background: url("../img/jumbotron_pattern.png") repeat center;
background-color: #123051;
}
body nav#navigation div.navbar-wrapper div.navigation-brand a.background-mask div.icon-wrapper {
background: url("../img/navbar_brand36x36.png") no-repeat;
-webkit-mask: none;
mask: none;
animation: none;
}
.docs #sidebar-wrapper #sidebar-brand a div.brand-wrapper {
background: url("../img/sidebar_brand36x36.png") no-repeat;
}
.important { .important {
color: red; color: red;
} }

View File

@ -1,235 +0,0 @@
options:
#############################
# Docs Layout Menu Options #
#############################
- title: Portal Guide
url: portal
menu_type: portal_menu
menu_section: portal_section
- title: Access the Portal
url: portal/access
menu_type: portal_menu
menu_section: portal_section
- title: DNS Changes
url: portal/dns-changes
menu_type: portal_menu
menu_section: portal_section
nested_options:
- title: Manual Review & Scheduling
url: portal/manual-review-scheduling
menu_section: portal_section
- title: RecordSet Search
url: portal/recordset-search
menu_type: portal_menu
menu_section: portal_section
- title: Groups
url: portal/groups
menu_type: portal_menu
menu_section: portal_section
nested_options:
- title: Create a Group
url: portal/create-a-group
- title: Manage Membership
url: portal/manage-membership
- title: Zones
url: portal/zones
menu_type: portal_menu
menu_section: portal_section
nested_options:
- title: Connect to your Zone
url: portal/connect-to-zone
menu_section: portal_section
- title: Manage Records
url: portal/manage-records
- title: Manage Access
url: portal/manage-access
menu_section: portal_section
- title: Understand Connections
url: portal/connections
- title: Search Zones
url: portal/search-zones
- title: Credentials
url: portal/credentials
menu_type: portal_menu
menu_section: portal_section
- title: Operator Guide
url: operator/index.html
menu_type: operator_menu
menu_section: operator_section
- title: Pre-requisites
url: operator/pre
menu_type: operator_menu
menu_section: operator_section
nested_options:
- title: Setup AWS DynamoDB
url: operator/setup-dynamodb
- title: Setup MySQL
url: operator/setup-mysql
- title: Setup AWS SQS
url: operator/setup-sqs
- title: Setup LDAP
url: operator/setup-ldap
- title: Setup API Server
url: operator/setup-api
menu_type: operator_menu
menu_section: operator_section
nested_options:
- title: API Configuration Guide
url: operator/config-api
- title: Setup the Portal Server
url: operator/setup-portal
menu_type: operator_menu
menu_section: operator_section
nested_options:
- title: Portal Configuration Guide
url: operator/config-portal
- title: API documentation
url: api/index
menu_type: api
menu_section: api
- title: Authentication
url: api/auth-mechanism.html
menu_type: api
- title: Zone
url: api/zone-model.html
menu_type: api
menu_section: zoneapireference
nested_options:
- title: Zone Model
url: api/zone-model.html
menu_section: zoneapireference
- title: Create Zone
url: api/create-zone.html
menu_section: zoneapireference
- title: Update Zone
url: api/update-zone.html
menu_section: zoneapireference
- title: Delete Zone
url: api/delete-zone.html
menu_section: zoneapireference
- title: Get Zone by ID
url: api/get-zone-by-id.html
menu_section: zoneapireference
- title: Get Zone by Name
url: api/get-zone-by-name.html
menu_section: zoneapireference
- title: List / Search Zone
url: api/list-zones.html
menu_section: zoneapireference
- title: Sync Zone
url: api/sync-zone.html
menu_section: zoneapireference
- title: List Zone Changes
url: api/list-zone-changes.html
menu_section: zoneapireference
- title: RecordSet
url: api/recordset-model.html
menu_type: api
menu_section: recordsetapireference
nested_options:
- title: RecordSet Model
url: api/recordset-model.html
menu_section: recordsetapireference
- title: Create RecordSet
url: api/create-recordset.html
menu_section: recordsetapireference
- title: Update RecordSet
url: api/update-recordset.html
menu_section: recordsetapireference
- title: Delete RecordSet
url: api/delete-recordset.html
menu_section: recordsetapireference
- title: Get RecordSet
url: api/get-recordset.html
menu_section: recordsetapireference
- title: List / Search RecordSets by Zone
url: api/list-recordsets-by-zone.html
menu_section: recordsetapireference
- title: Get RecordSet Change
url: api/get-recordset-change.html
menu_section: recordsetapireference
- title: List RecordSet Changes
url: api/list-recordset-changes.html
menu_section: recordsetapireference
- title: Global List / Search RecordSets
url: api/list-recordsets-global.html
menu_sectioon: recordsetapireference
- title: Batch Change
url: api/batchchange-model.html
menu_type: api
menu_section: batchchangeapireference
nested_options:
- title: Batch Change Model
url: api/batchchange-model.html
menu_section: batchchangeapireference
- title: Create Batch Change
url: api/create-batchchange.html
menu_section: batchchangeapireference
- title: Get Batch Change
url: api/get-batchchange.html
menu_section: batchchangeapireference
- title: List Batch Changes
url: api/list-batchchanges.html
menu_section: batchchangeapireference
- title: Batch Change Errors
url: api/batchchange-errors.html
menu_section: batchchangeapireference
- title: Cancel Batch Change
url: api/cancel-batchchange.html
menu_section: batchchangeapireference
- title: Approve Batch Change
url: api/approve-batchchange.html
menu_section: batchchangeapireference
- title: Reject Batch Change
url: api/reject-batchchange.html
menu_section: batchchangeapireference
- title: Membership
url: api/membership-model.html
menu_type: api
menu_section: membershipapireference
nested_options:
- title: Membership Model
url: api/membership-model.html
menu_section: membershipapireference
- title: Create Group
url: api/create-group.html
menu_section: membershipapireference
- title: Update Group
url: api/update-group.html
menu_section: membershipapireference
- title: Delete Group
url: api/delete-group.html
menu_section: membershipapireference
- title: Get Group
url: api/get-group.html
menu_section: membershipapireference
- title: List Groups
url: api/list-groups.html
menu_section: membershipapireference
- title: List Group Admins
url: api/list-group-admins.html
menu_section: membershipapireference
- title: List Group Members
url: api/list-group-members.html
menu_section: membershipapireference
- title: List Group Activity
url: api/list-group-activity.html
menu_section: membershipapireference

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 1011 KiB

After

Width:  |  Height:  |  Size: 1011 KiB

View File

Before

Width:  |  Height:  |  Size: 1011 KiB

After

Width:  |  Height:  |  Size: 1011 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Some files were not shown because too many files have changed in this diff Show More