From 3b3b6a8f5f95555c637d5b7f66e1039c48ac0492 Mon Sep 17 00:00:00 2001
From: Hugues Malphettes <hmalphettes@gmail.com>
Date: Tue, 3 Sep 2019 21:11:49 +0800
Subject: [PATCH] Add the CreateAccessToken api

https://docs.atlassian.com/bitbucket-server/rest/5.5.2/bitbucket-access-tokens-rest.html
---
 default_api.go | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

diff --git a/default_api.go b/default_api.go
index 7ea6589..7e9fe35 100644
--- a/default_api.go
+++ b/default_api.go
@@ -10982,6 +10982,78 @@ func (a *DefaultApiService) SetPermissionForUsers_33(projectKey string, localVar
 	return NewAPIResponse(localVarHTTPResponse), nil
 }
 
+/*
+		DefaultApiService
+
+	 @param optional (nil or map[string]interface{}) with one or more of:
+		 @param "name" (string) the names of the users
+		 @param "permission" (string) the permission to grant
+	 @return
+*/
+func (a *DefaultApiService) CreateAccessToken(userSlug, tokenName string, repoAdmin, projectRead bool) (*APIResponse, error) {
+	var (
+		localVarHTTPMethod = strings.ToUpper("Put")
+		localVarPostBody   interface{}
+		localVarFileName   string
+		localVarFileBytes  []byte
+	)
+
+	// create path and map variables
+	// /rest/access-tokens/1.0/users/{userSlug}
+	localVarPath := a.client.cfg.BasePath + "/access-tokens/1.0/users/" + userSlug
+
+	localVarHeaderParams := make(map[string]string)
+	localVarQueryParams := url.Values{}
+	localVarFormParams := url.Values{}
+
+	// to determine the Content-Type header
+	localVarHTTPContentTypes := []string{}
+
+	// set Content-Type header
+	localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+	if localVarHTTPContentType != "" {
+		localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+	}
+
+	// to determine the Accept header
+	localVarHTTPHeaderAccepts := []string{}
+
+	// set Accept header
+	localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+	if localVarHTTPHeaderAccept != "" {
+		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+	}
+
+	permissions := make([]string, 0)
+	if repoAdmin {
+		permissions = append(permissions, "REPO_ADMIN")
+	}
+	if projectRead {
+		permissions = append(permissions, "PROJECT_READ")
+	}
+	localVarPostBody = map[string]interface{}{
+		"name":        tokenName,
+		"permissions": permissions,
+	}
+
+	r, err := a.client.prepareRequest(a.client.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
+	if err != nil {
+		return nil, err
+	}
+
+	localVarHTTPResponse, err := a.client.callAPI(r)
+	if err != nil || localVarHTTPResponse == nil {
+		return NewBitbucketAPIResponse(localVarHTTPResponse)
+	}
+	defer localVarHTTPResponse.Body.Close()
+	if localVarHTTPResponse.StatusCode >= 300 {
+		bodyBytes, _ := ioutil.ReadAll(localVarHTTPResponse.Body)
+		return NewAPIResponseWithError(localVarHTTPResponse, reportError("Status: %v, Body: %s", localVarHTTPResponse.Status, bodyBytes))
+	}
+
+	return NewBitbucketAPIResponse(localVarHTTPResponse)
+}
+
 /*
 	DefaultApiService